2014-04-03 80 views
0

已經停留了幾個小時。 我有一個簡單的(我認爲)分頁PHP代碼在這裏工作正常的第一頁 - 這意味着我得到正確數量的頁面顯示和正確的結果顯示。代碼:顯示所有結果的第二頁分頁

<?php 
$query = $_POST ['query']; 
$link=mysql_connect('localhost','root','root'); 
    mysql_select_db("asset_catalog",$link); 
$q=("SELECT COUNT(*) \"total\" FROM assets WHERE Description LIKE '%$query%' OR Manufacturer LIKE '%$query%'"); 
$ros=mysql_query($q,$link) or die(mysqli_error()); 
$row=mysql_fetch_array($ros); 
$total=$row['total']; 
$dis=15; 
$total_page=ceil($total/$dis); 
$page_cur=(isset($_GET['page']))?$_GET['page']:1; 
$k=($page_cur-1)*$dis; 

$q=("SELECT * FROM assets WHERE Description LIKE '%$query%' OR Manufacturer LIKE '%$query%' limit $k,$dis"); 
$ros=mysql_query($q,$link); 

    echo "<table border='0'> 

     <tr> 

     </tr>"; 
    while($row=mysql_fetch_array($ros)) 

     { 
      if (($i % 5) == 0) echo "<tr>"; 
      echo "<td><img src='".$row['Image']."' id='queryimg'><br> 
      <a href='details.php?ID=".$row['ID']."' style='color: #fff;'>{$row[Description]}</a></td>"; 
       if (($i % 5) == 4) echo "</tr>"; 
       $i++; 
     } 

     if ($i > 0 && ($i-1) % 3 < 2) echo "</tr>"; 

     echo "</table>"; 

?> 
<div style="position: absolute; left: 320px;"> 
<?php 
if($page_cur>1) 
{ 
    echo '<a href="pagination.php?page='.($page_cur-1).'" style="cursor:pointer;color:green;" ><input style="cursor:pointer;background-color:green;border:1px black solid;border-radius:5px;width:120px;height:30px;color:white;font-size:15px;font-weight:bold;" type="button" value=" Previous "></a>'; 
} 
else 
{ 
    echo '<input style="background-color:green;border:1px black solid;border-radius:5px;width:120px;height:30px;color:black;font-size:15px;font-weight:bold;" type="button" value=" Previous ">'; 
} 
for($i=1;$i<$total_page;$i++) 
{ 
    if($page_cur==$i) 
    { 
     echo ' <input style="background-color:green;border:2px black solid;border-radius:5px;width:30px;height:30px;color:black;font-size:15px;font-weight:bold;" type="button" value="'.$i.'"> '; 
    } 
    else 
    { 
    echo '<a href="pagination.php?page='.$i.'"> <input style="cursor:pointer;background-color:green;border:1px black solid;border-radius:5px;width:30px;height:30px;color:white;font-size:15px;font-weight:bold;" type="button" value="'.$i.'"> </a>'; 
    } 
} 
if($page_cur<$total_page) 
{ 
    echo '<a href="pagination.php?page='.($page_cur+1).'"><input style="cursor:pointer;background-color:green;border:1px black solid;border-radius:5px;width:90px;height:30px;color:white;font-size:15px;font-weight:bold;" type="button" value=" Next "></a>'; 
} 
else 
{ 
echo '<input style="background-color:green;border:1px black solid;border-radius:5px;width:90px;height:30px;color:black;font-size:15px;font-weight:bold;" type="button" value=" Next ">'; 
}?> 

的問題是,如果我點擊它顯示在數據庫中的所有結果的第二頁上 - 而不是結果,應該在第二頁。此外,如果我最初說3頁,一旦我去第二頁,它表明我有70頁又名(所有數據庫)

我確信有一個快速解決這個問題,但爲了生活我無法弄清楚。 任何幫助,建議將是偉大的。謝謝!

回答

0

在你失去你的$_POST['query']的頁面之間。取而代之的

$query = $_POST ['query']; 

$query = (isset($_POST ['query']))?$_POST['query']:$_GET['query']; 

或使用

$query = $_REQUEST['query']; 

在分頁鏈接

更換

'<a href="pagination.php?page='.($page_cur-1).'" style 

'<a href="pagination.php?page='.($page_cur-1).'&query='.$query.'" style 
+0

謝謝主席先生,我給這個一杆現在。 – MD3

+0

屋大維:非常感謝!它做到了。非常感謝!這麼多學習仍然很高興有論壇來尋找答案。再次感謝! – MD3

+0

嘗試使用MySQLi,因爲MySQL擴展已被棄用,將來會被刪除。在使用mysqli_real_escape_string()的SQL查詢中使用它之前,還要使用$ query變量。我還建議使用框架,分頁,轉義和數據庫平臺切換是Codeigniter,Laravel等框架的簡單任務。 – Octavian

相關問題