2014-03-12 44 views
0

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

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个数据?谢谢你在前进

+0

希望这可以解决您的问题.. http://stackoverflow.com/a/17159388/1358004 –

+0

您的分页查询似乎没有返回任何东西,也没有使用全局变量或通过引用传递参数更新传递参数的值。不确定$ limitt在查询时的价值。 – Kickstart

+0

访问[使用php和mysql分页] [1]。
我在这里回答。 [1]:http://stackoverflow.com/questions/12315920/php-mysql-query-with-pagination/23147443#23147443 – 2014-04-18 04:45:09

回答

0

为了使限制数据量显示

<?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没有任何不再使用。希望可以帮助任何像我一样得到问题的人,欢呼! ;)

0

请把:

echo $query;

后:

$sql_ = mysql_query($query_);

在showReport.php

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

+0

yaaap,在showReport.php有'包括('寻呼。 php);'我试过了,但数据仍然显示所有的嗯.... – ulaaaan

+0

回声命令应该显示您正在使用的查询。然后,您可以直接在MySQL数据库中尝试查询,以验证它是否在那里提供了正确的数据。 –

+0

但是如何让数据只显示每页2个数据?该查询是正确的,但它混淆了为什么数据不会显示只有2个数据,在页面的项目旁边只设置了2 – ulaaaan