Δημιουργία function για pagination με κώδικα που δημιουργεί το Dreamweaver

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
Lykos22
Δημοσιεύσεις: 89
Εγγραφή: 29 Μαρ 2011 16:28
Τοποθεσία: UK

Δημιουργία function για pagination με κώδικα που δημιουργεί το Dreamweaver

Δημοσίευση από Lykos22 » 26 Φεβ 2013 12:30

Έχω δημιουργήσει στο Dreamweaver ένα recordset που δείχνει τα δεδομένα μου σε μία σελίδα με pagination. Τα βασικά κομμάτια του κώδικα είναι αυτά:

Κώδικας: Επιλογή όλων

<?php
.....

$maxRows_sql = 3; // per_page
$pageNum_sql  = 0;
if &#40;isset&#40;$_GET&#91;'pageNum_sql '&#93;&#41;&#41; &#123;
  $pageNum_sql  = $_GET&#91;'pageNum_sql '&#93;;
&#125;
$startRow_sql = $pageNum_sql * $maxRows_sql ;

$query_sql = ""SELECT `users`.`user_id` AS `id`,
				`users`.`first_name` AS `firstname` , 
				`users`.`last_name` AS `lastname`, 
				`users`.`email` AS `email`, 
			FROM `users` ORDER BY `users`.`user_id` DESC";
$query_limit_query_sql = sprintf&#40;"%s LIMIT %d, %d", $query_sql, $startRow_sql, $maxRows_sql &#41;;
$sql = mysql_query&#40;$query_limit_sql , $conn&#41; or die&#40;mysql_error&#40;&#41;&#41;;
$row_sql = mysql_fetch_assoc&#40;$sql&#41;;

if &#40;isset&#40;$_GET&#91;'totalRows_sql'&#93;&#41;&#41; &#123;
  $totalRows_sql= $_GET&#91;'totalRows_sql'&#93;;
&#125; else &#123;
  $all_sql= mysql_query&#40;$query_sql&#41;;
  $totalRows_sql= mysql_num_rows&#40;$all_sql&#41;;
&#125;
$totalPages_sql= ceil&#40;$totalRows_sql/$maxRows_sql&#41;-1;

$queryString_sql= "";
if &#40;!empty&#40;$_SERVER&#91;'QUERY_STRING'&#93;&#41;&#41; &#123;
  $params = explode&#40;"&", $_SERVER&#91;'QUERY_STRING'&#93;&#41;;
  $newParams = array&#40;&#41;;
  foreach &#40;$params as $param&#41; &#123;
    if &#40;stristr&#40;$param, "pageNum_sql"&#41; == false && 
        stristr&#40;$param, "totalRows_sql"&#41; == false&#41; &#123;
      array_push&#40;$newParams, $param&#41;;
    &#125;
  &#125;
  if &#40;count&#40;$newParams&#41; != 0&#41; &#123;
    $queryString_sql= "&" . htmlentities&#40;implode&#40;"&", $newParams&#41;&#41;;
  &#125;
&#125;
$queryString_sql= sprintf&#40;"&totalRows_sql=%d%s", $totalRows_sql, $queryString_sql&#41;;
?>
<html>

....
<?php if &#40;$totalRows_sql > 0&#41; &#123; // Show if recordset not empty ?>
...
<?php do &#123;
      <tr>
        <td><?php echo $row_sql&#91;'id'&#93;; ?></td>
        <td><?php echo $row_sql&#91;'firstname'&#93;; ?></td>
        <td><?php echo $row_sql&#91;'lastname'&#93;; ?></td>
        <td><?php echo $row_sql&#91;'email'&#93;; ?></td>
      </tr>
      <?php &#125; while &#40;$row_sql = mysql_fetch_assoc&#40;$sql&#41;&#41;; ?>
...
&#125;//end if
....

<a href="<?php printf&#40;"%s?pageNum_sql=%d%s", $current_page, max&#40;0, $pageNum_sql - 1&#41;, $queryString_sql&#41;; ?>" title="previous page">Previous</a>
<a href="<?php printf&#40;"%s?pageNum_sql=%d%s", $current_page, min&#40;$totalPages_sql, $pageNum_sql + 1&#41;, $queryString_sql&#41;; ?>"title="next page">Next</a>
Αυτό που προσπαθώ να φτιάξω είναι να βάλω τον κώδικα που δημιουργεί το Dreamweaver μέσα σε μία function όπου θα της περνάω το query και το $per_page, έτσι ώστε να μπορώ να το ξαναχρησιμοποιήσω και για άλλα queries και για να γλιτώσω μερικές γραμμές κώδικα (να ναι πιο οργανωμένος ο κώδικας).

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες