【问题标题】:Pagination with PHP and MySQL?使用 PHP 和 MySQL 进行分页?
【发布时间】:2014-04-18 12:52:48
【问题描述】:

我有 2 个文件。有showReport.php 和paging.php。代码很好,没有错误,但显示的结果不正确。你能帮我参加期末考试吗?因为我试图改变它但仍然不起作用。请忽略变量名或表名,因为我使用的是印度尼西亚语。

showReport.php

<?php 
            $query = mysql_query("select * from barang");
            $item_per_page = 2; // tambahan
            paging( $query,$item_per_page );
            $limitt = ($page - 1) * $item_per_page;

            $query_ = mysql_query("SELECT * FROM barang ORDER BY id_transaksi DESC LIMIT $limitt, $item_per_page"); // tmbh
            $sql_ = mysql_query($query_);       

            $i = 1;

            while ($data = mysql_fetch_array($query)) {
            ?>
            <tr class="<?php if ($i % 2 == 0) { echo "odd"; } else { echo "even"; } ?>">
                <td><?php echo $i; ?></td>
                <td>
                    <?php 
                    echo $data['tanggal']; 

                    //previlege admin
                    if ($_SESSION['role'] == 'operator') {
                    ?>
                        <div class="row-actions">
                        <a href="edit_barang.php?uid=<?php echo $data['id_transaksi'];?>">Update</a>
                         | <a href="delete_barang.php?uid=<?php echo $data['id_transaksi'];?>" onClick="return confirm('Delete this report?')" class="delete">Delete</a>




                    </div>
                    <?php } ?>
                </td>



                <td><?php echo $data['barang_in']; ?></td>
                <td><?php echo $data['bijih_out']; ?></td>
                <td><?php echo $data['htm_out']; ?></td>
                <td><?php echo $data['pth_out']; ?></td>
                <td><?php echo $data['bijih']; ?></td>
                <td><?php echo $data['kantong_htm']; ?></td>
                <td><?php echo $data['kantong_pth']; ?></td>
                <td><?php echo $data['note']; ?></td>
            </tr>



            <?php 
                $i++;
            } 
            ?>

paging.php

<?php
function paging($query,$item_per_page){
   $page          =  isset($_GET['page']) ? $_GET['page'] : 1 ; 
   if( ( $page < 1) && (empty( $page ) ) ){
      $page=1;
   }
   $sql         = mysql_query( $query_);
   $amount_data   = mysql_num_rows($query);
   $amount_page    = ceil( $amount_data/$item_per_page );
   if( $page>$amount_page ){
      $page=$amount_page;
   }
   $lanjut  = $page + 1;
   $sebelum = $page - 1;
   ?>
<style type="text/css">
.tengah {
    text-align: center;
}
</style>

<?php echo $page;?> dari <?php echo $amount_page;?><br />
   <a href="?page=1"></a><a href="?page=<?php echo $sebelum; ?>">sebelumnya</a>;
   ||
   <a href="?page=<?php echo $lanjut;?>">selanjutnya</a><a href="?page=<?php echo $jumlah_hal;?>"></a>
   Ke Halaman: <form action="" method="get"><input type="text" name="page"><input type="submit" value="Go"></form>
   <?php
}
?>

页数是对的,但仍然在一页中显示所有数据。例如我有 4 个数据,我想为每页显示 2 个数据。所以页数是 2(正确),但为什么我的数据不会显示每页 2 个数据?提前谢谢你

【问题讨论】:

标签: php mysql pagination


【解决方案1】:

请输入:

echo $query;

之后:

$sql_ = mysql_query($query_);

在 showReport.php 中。

检查查询是否按照您的预期创建。同样在 showReport.php 中,我看到您正在使用变量“$page”,而我没有看到它首先被赋予了值。两个页面是否都导入另一个页面?

【讨论】:

  • yaaap,在showReport.php 中有include('paging.php); 我试过了,但数据仍然显示所有这些嗯......
  • echo 命令应该显示您正在使用的查询。然后,您可以直接在 MySQL 数据库中尝试查询,以验证它是否提供了正确的数据。
  • 但是如何使数据每页只显示 2 个数据?查询是正确的,但它混淆了为什么数据不会只显示 2 个数据,旁边的页面项目只是设置 2
  • 在 showReport.php 中,您的 while 将遍历通过该查询找到的所有记录。如果查询返回 4 条记录,将显示 4 条记录,而您只想显示 2 条。检查查询是否只返回 2 条记录而不是 4 条。
【解决方案2】:

用于限制显示的数据量

<?php 
$sqlCount = "select count(id_transaksi) from barang";  
$rsCount = mysql_fetch_array(mysql_query($sqlCount));  
$banyakData = $rsCount[0];  
$page = isset($_GET['page']) ? $_GET['page'] : 1;  
$limit = 2;  
$start_from = $limit * ($page - 1);  
$sql_limit = "select * from barang ORDER BY id_transaksi limit $start_from, $limit";  
$result = mysql_query($sql_limit);  ?>

用于制作页数/分页

<?php
$numberofPages = ceil($amountData / $limit);  
echo 'Pages: ';  
for($i = 1; $i <= $numberofPages; $i++){  
 if($page != $i){  
 echo '[<a href="showReport.php?page='.$i.'">'.$i.'</a>] ';  
 }else{  
 echo "[$i] ";  
 }  
}  
?>  

根据我的问题,paging.php 不再使用。希望能帮到像我一样遇到问题的人,干杯! ;)

【讨论】:

    猜你喜欢
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    • 2011-04-25
    • 2015-05-16
    • 2011-10-09
    • 2014-04-11
    相关资源
    最近更新 更多