PHP while循环的多个条件不返回任何数据


PHP while loop multiple conditions returning no data?

我有一个PHP页面,从MySQL表返回数据。我决定添加一个功能,允许用户设置他们想要显示的结果的数量,例如,如果有数千条记录。

下面是显示数据的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个结果。然而,这目前只显示一个"-"和$noOfResults变量(这在这一点上是需要的)。是我的语法错了,还是这不是解决这种问题的正确方法?

谢谢,让它与LIMIT一起工作,甚至没有想到要这样做。

谁能解释一下为什么这个被否决了,只是想学习,以便将来写更好的问题,谢谢。

从数据库中获取有限数据的最好方法是在查询中使用LIMIT语句。我假设你的查询是

$result= "SELECT * FROM `mytable`";

中添加limit语句
$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;
    }

你做错了$row将是一个数组。因此,为了纠正这一点,使用mysql_num_rows()函数在php检查行数。试试下面的代码:

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

希望这对你有帮助