2013-12-11 95 views
0

這裏我使用get方法從搜索表單中收集類別和麪積值。因此,即時通訊有7個記錄到數據庫中,我想每個頁面只顯示4條記錄,當用戶點擊Next按鈕時,剩餘的記錄需要顯示,但是這裏我的代碼只顯示數據庫的前四條記錄,但是當我點擊下一個按鈕,然後剩餘的3條記錄沒有顯示出來。如何使用PHP分頁從MySQL數據庫中檢索到的數據?

考慮area=Mumbaicategory=lawn。如果只有7個記錄到數據庫中,然後我想前四拿到顯示在第一頁,其餘3到上點擊下一步按鈕在同一頁..

這裏是我的代碼:

<?php 
    $link=mysql_connect("localhost","root",""); 
    mysql_select_db("celebration_db",$link); 
    $q="select count(*) \"total\" from hallinfo"; 
    $ros=mysql_query($q,$link); 
    $row=(mysql_fetch_array($ros)); 
    $total=$row['total']; 
    $dis=4; 
    $total_page=ceil($total/$dis); 
    $page_cur=(isset($_GET['page']))?$_GET['page']:1; 
    $k=($page_cur-1)*$dis; 

    $category = $_GET['category']; 
    $area = $_GET['area']; 
    //$category = 'hall'; 
    //$area = 'nagpur'; 

    echo $category; 
    echo $area; 

    $q="select * from hallinfo where category = '$category' AND area = '$area' limit $k,$dis"; 
    //$q="select * from hallinfo limit $k,$dis"; 

    $ros=mysql_query($q,$link); 
    while($row=mysql_fetch_array($ros)) 
    { 
     $imageId = $row['id']; 
echo '<div id="pattern">';  
echo '<table>'; 
echo '<tr>'; 
echo '<td colspan="2" width="300px" height="200px"> 
     <img src="image-show.php?id='.$imageId.'">'; 
echo '</td>'; 
echo '<td width="150px" height="200px">'.$row['description']; 
echo '</td>'; 
echo '</tr>'; 
echo '<tr>'; 
echo '<td>'.$row['rent']; 
echo '</td>'; 
echo '<td>'.$row['capacity']; 
echo '</td>'; 
echo '<td>'.$row['area']; 
echo '</td>'; 
echo '</tr>'; 
echo '</table>'; 
echo '</div>'; 
    } 
    //echo '</table>'; 
    //echo '<br/>'; 
    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 ">'; 
    } 
?> 

回答

0

這似乎是你的主要問題在你的伯爵。雖然您只選擇特定的行(在上面的示例行中使用category = ..area=..,但您最初的行數是返回數據庫中所有行的數量。因此,總共可能有7行,也許有隻有4行與給定的過濾器。

順便說一下,你應該真的使用mysqli:http://www.php.net/mysqli

相關問題