Pagination PHP没有显示表数据

时间:2017-06-14 05:33:42

标签: php html mysqli

来自Here的分页继续问题。

从mysql中显示表中数据的基本代码。

    $stmt = $mysqli->prepare('SELECT accountno,accountname,cname,revenue,status FROM ***** WHERE user_id = ? '); 
    $stmt->bind_param('i', $user_id);  
   $stmt->bind_result($accountno ,$accountname, $cname, $revenue,$status);
    $stmt->execute();    // Execute the prepared query.
    echo "<table border='1'>
        <tr>
        <th>Account No</th>
        <th>Account Name</th>
        <th>Company Name</th>
        <th>Revenue</th>
        <th>Status</th>
        </tr>";

        while($row = $stmt->fetch()) {

        echo "<tr>";
        echo "<td>" . $row['accountno'] . "</td>";
        echo "<td>" . $row['accountname'] . "</td>";
        echo "<td>" . $row['cname'] . "</td>";
        echo "<td>" . $row['revenue'] . "</td>";
        echo "<td>" . $row['status'] . "</td>";
        echo "</tr>";
        }
        $stmt->close();
        echo "</table>";

问题1: 使用此代码,无法加载数据。显示表格,甚至显示行字段但没有数据。enter image description here

问题2 :添加分页。代码示例取自here 在此行显示取消定义索引的通知。另外,想要的是下面这段代码是否安全且在性能方面还可以?

  

$页= $ _ REQUEST [&#39; P&#39];

以下是分页的部分:

 <?php
        //------------
        $page=$_REQUEST['p'];
      $limit=10;
       if($page=='')
    {
    $page=1;
    $start=0;
    }
else
  {
    $start=$limit*($page-1);
   }

    $total=$stmt->num_rows;
    $num_page=ceil($total/$limit);

  function pagination($page,$num_page)
  {
    echo'<ul style="list-style-type:none;">';
    for($i=1;$i<=$num_page;$i++)
 {
       if($i==$page)
    {
    echo'<li style="float:left;padding:5px;">'.$i.'</li>';
    }
    else
     {
      echo'<li style="float:left;padding:5px;"><a href="protected_page.php?
         p='.$i.'">'.$i.'</a></li>';
      }
          }
     echo'</ul>';
     }
     if($num_page>1)
      {
      pagination($page,$num_page);
       }

1 个答案:

答案 0 :(得分:2)

while( $stmt->fetch()) {

        echo "<tr>";
        echo "<td>" . $accountno . "</td>";
        echo "<td>" . $accountname . "</td>";
        echo "<td>" . $cname . "</td>";
        echo "<td>" . $revenue . "</td>";
        echo "<td>" . $status . "</td>";
        echo "</tr>";
        }

你是绑定结果但是使用$ row来显示,它不会,所以试试这个

用于分页

if(isset($_REQUEST['p'])){
//then all the code for pagination
}