PHP while循环多个条件没有返回数据?

时间:2014-08-18 09:00:00

标签: php while-loop

我有一个从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合作,甚至没想过要做到这一点。

有人可以解释为什么这会被贬低,只是想学习,以便将来写出更好的问题,谢谢。

2 个答案:

答案 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;
    }