我有一个从MySQL表返回数据的PHP页面。我决定添加一个功能,允许用户设置他们想要显示的结果数量,以防万一记录例如。
以下是显示数据的PHP代码:
while ($row = mysql_fetch_array($result) && ($row <= $noOfResults)) {
echo '<p class="display-date">' . $row['date'] . '</p><p class="display">' . $row['id'] . ' - ' . base64_decode( $row['packetdata']) . '</p>';
echo '<hr align="center" width="100%" />';
echo $noOfResults;
}
我希望这只能显示用户选择的数据。因此,如果用户选择10个结果,则$ noOfResults设置为10,并且它将仅从数据库中获取前10个结果。然而,目前只显示&#34; - &#34;和$ noOfResults变量(此时需要)。我的语法错了还是这不是解决这个问题的正确方法?
谢谢,让它与LIMIT合作,甚至没想过要做到这一点。
有人可以解释为什么这会被贬低,只是想学习,以便将来写出更好的问题,谢谢。
答案 0 :(得分:1)
你做错了$row
将是一个数组。所以要纠正这个使用php中的mysql_num_rows()
函数来检查行数。请尝试下面的代码。
if(mysql_num_rows($result)<=$noOfResults){
while ($row = mysql_fetch_array($result) ) {
echo '<p class="display-date">' . $row['date'] . '</p><p class="display">' . $row['id'] . ' - ' . base64_decode( $row['packetdata']) . '</p>';
echo '<hr align="center" width="100%" />';
echo $noOfResults;
}
}
希望这有助于你
答案 1 :(得分:1)
从数据库获取有限数据的最佳方法是查询中的LIMIT语句。 我假设您的查询是
$result= "SELECT * FROM `mytable`";
只需在
中添加限制声明即可$result= "SELECT * FROM `mytable` LIMIT '$noOfResults'";
那么你的while循环将是
while ($row = mysql_fetch_array($result) ) {
echo '<p class="display-date">' . $row['date'] . '</p><p class="display">' . $row['id'] . ' - ' . base64_decode( $row['packetdata']) . '</p>';
echo '<hr align="center" width="100%" />';
echo $noOfResults;
}