【发布时间】:2017-10-02 21:21:58
【问题描述】:
我正在寻找一种使用我的搜索表单设置分页的好方法,我希望它根据用户选择的每页条目数量来显示数据。他们在搜索结果下输入的这个值是通过 $_POST['searchamount'] 获取的。然后我尝试按照一些教程设置一个简单的分页,但我一直遇到问题,因为以下页面无法显示任何数据,我相信这是因为我的搜索脚本需要 $_POST['search'] 值是真实的意思 somebudy 提交表单,当点击数字滚动结果页面时,它只会重定向到 search.php?page=1 例如。如何添加其他方式以便它可以继续搜索,同时确保其安全?
我在网上阅读了一些很酷的方法来使用 jQuery,我希望它可以自动显示以下结果而无需离开页面。
这是我尝试过的示例
<?php while($row = mysqli_fetch_array($result)): ?>
<tr>
<td><?php echo $row['FactionName'];?></td>
<td><?php echo $row['MoneyBalanceFormatted'];?></td>
<td><?php echo $row['SpawnerWorthFormatted'];?></td>
<td><?php echo $row['BlockWorthFormatted'];?></td>
<td><?php echo $row['ItemWorthFormatted'];?></td>
<td><?php echo $row['TotalWorthFormatted'];?></td>
<td><?php echo $row['RichestMember'];?></td>
</tr>
<?php endwhile;?>
<?php
$page_query = "SELECT * FROM ORDER BY TotalWorth DESC";
$page_result = mysqli_query($con, $page_query);
$total_records = mysqli_num_rows($page_result);
$total_pages = ceil($total_records/$record_per_page);
$start_loop = $page;
$difference = $total_pages - $page;
if($difference <= 5)
{
$start_loop = $total_pages - 5;
}
$end_loop = $start_loop + 4;
if($page > 1)
{
echo "<a href='search.php?page=1'>First</a>";
echo "<a href='search.php?page=".($page - 1)."'><<</a>";
}
for($i=$start_loop; $i<=$end_loop; $i++)
{
echo "<a href='search.php?page=".$i."'>".$i."</a>";
}
if($page <= $end_loop)
{
echo "<a href='search.php?page=".($page + 1)."'>>></a>";
echo "<a href='search.php?page=".$total_pages."'>Last</a>";
}
?>
虽然我的示例根本无法正常工作,但它甚至会显示错误,mysqli_num_rows 返回布尔错误。
【问题讨论】:
-
"它甚至显示错误,mysqli_num_rows 返回一个布尔错误" 那是因为您没有在查询中输入表名
-
在这里查看我的答案stackoverflow.com/questions/46055722/… 并相应地调整您的需要
-
好尴尬...我写了但不小心删除了它。谢谢@PatrickQ
标签: javascript php jquery html pagination