2016-08-30 7 views
1

検索ボックスに用語を入力すると、私のページネーションは機能しませんが、完璧な結果が得られます。 たとえば、私が"Laptops"と入力すると、ラップトップを持っているレコードが私に渡されますが、私のページネーションは流れに沿っていません。私は何かを逃したのか分からない。ここ は私のコードです:ページネーションが機能しない - PHP

検索 - ボックス:

<form action="" method="GET"> 

      Search: <input type="text" name="term" value="<?php echo @$_REQUEST['term']; ?>" /><br /> 
      <input type="submit" value="Submit" /> 
     </form> 

データを表示するには:

<table id="employee-grid" width="auto" cellpadding="1" cellspacing="1" border="1" class="table table-hover"> 
      <?php 
      include_once '../storescripts/connect_to_mysql.php'; 
      $num_rec_per_page = 5; 
      if (isset($_GET["page"])) { 
       $page = $_GET["page"]; 


      } else { 
       $page = 1; 
      }; 
      $start_from = ($page - 1) * $num_rec_per_page; 

      $sql = "SELECT * FROM products WHERE status='Active' LIMIT $start_from, $num_rec_per_page"; 
      ?> 
      <thead> 
       <tr class="success"> 
        <th>Id</th> 
        <th>Product Image</th> 
        <th>Product Name</th> 
        <th>Price</th> 
        <th>Status</th> 
        <th>Quantity</th> 
        <th>Details</th> 
        <!--<th>Category</th> 
        <th>Subcategory</th>--> 
        <th>Date Added</th> 
        <th colspan="2">Functions</th> 
       </tr> 
      </thead> 


<?php 
if (!empty($_REQUEST['term'])) 
{ 

    $term = mysql_real_escape_string($_REQUEST['term']); 

    $sql = "SELECT * FROM products WHERE product_name LIKE '%" . $term . "%' or status LIKE '%" . $term . "' or quantity LIKE '%" . $term . "' or details LIKE '%" . $term . "' or price LIKE '%" . $term . "' or details LIKE '%" . $term . "'"; 
} 
$r_query = mysql_query($sql); 
if ($r_query > 1) 
{ 

    while ($row = mysql_fetch_array($r_query)) 
    { 
     echo "<tr bgcolor=''>"; 
     echo "<td width='5%'>" . $row['id'] . "</td>";?> 
     <td width="10%"><img style='border:#666 1px solid;' width='70' src="<?php echo $row["productimage"]; ?>" alt="" /></td> 
     <?php echo "<td width='20%'>" . $row['product_name'] . "</td>"; 
     echo "<td width='5%'>" . $row['price'] . "</td>"; 
     echo "<td width='5%'>" . $row['status'] . "</td>"; 
     echo "<td width='5%'>" . $row['quantity'] . "</td>"; 
     echo "<td width='19%'>" . $row['details'] . "</td>"; 
     // echo "<td>" . $row['category'] . "</td>"; 
     // echo "<td>" . $row['subcategory'] . "</td>"; 
     echo "<td width='10%'>" . $row['date_added'] . "</td>"; 
     echo "<td><a href='product_listing_edit.php?id=" . $row['id'] . "'>Edit</a></td>";?> 
     <td><a href="#" class="delete" onclick="dialogbox(<?php echo $row['id']; ?>)" >Delete</a> 
     <?php 
     //echo "<td><a name='delete' href='product_listing_delete.php?id=" . $row['id'] . "' onclick='return show_confirm();' >Delete</a></td><tr>"; 



     echo "</tr>"; 
    } 
} 
else { 
    echo "Nothing should be displayed"; 
} 
?> 
     </table> 

改ページコード:

<?php 
      //Pagination code starts here 
      $sql = "SELECT * FROM products"; 
      $rs_result = mysql_query($sql); //run the query 
      $total_records = mysql_num_rows($rs_result); //count number of records 
      $total_pages = ceil($total_records/$num_rec_per_page); 

      echo "<a href='product_listing.php?page=1'>".'|<'."</a> "; // Goto 1st page 

      for ($i=1; $i<=$total_pages; $i++) { 
         echo "<a href='product_listing.php?page=".$i."'>".$i."</a> "; 
      }; 
      echo "<a href='product_listing.php?page=$total_pages'>".'>|'."</a> "; // Goto last page 

      ?> 
+0

** **廃止予定のmysql _ * - 機能を使用しないでください。これらはPHP 5.5以降で廃止され、PHP 7では完全に削除されました。代わりにMySQLiまたはPDOを使用してください。 ** 2。**あるクエリ( 'product_name LIKE ...')に 'WHERE'節がある場合は、ページネーション・クエリにもそれが必要です。 –

答えて

1

あなたがいない見つけるためにr_queryを使用する必要がありますページングの行数テーブル内の行の総数を確認しています。

<?php 
      //Pagination code starts here 

      $total_records = mysql_num_rows($r_query); //count number of records 
      $total_pages = ceil($total_records/$num_rec_per_page); 

      echo "<a href='product_listing.php?page=1'>".'|<'."</a> "; // Goto 1st page 

      for ($i=1; $i<=$total_pages; $i++) { 
         echo "<a href='product_listing.php?page=".$i."'>".$i."</a> "; 
      }; 
      echo "<a href='product_listing.php?page=$total_pages'>".'>|'."</a> "; // Goto last page 

      ?> 
+0

私は条件を置く必要がありますように? if(something_Searched){検索済みのページングで戻る} else {すべてのレコードを選択してページングを表示} –

+0

OKです。結果が表示されない場合は、「結果が表示されません」とページングされたすべてのアイテムを表示できます – jophab

関連する問題