来自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: 使用此代码,无法加载数据。显示表格,甚至显示行字段但没有数据。
问题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);
}
答案 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
}