检查while循环输出查询中的任何数据

时间:2014-01-24 10:51:30

标签: php

$query=$db->prepare("SELECT *...
while($data=$query->fetch(PDO::FETCH_ASSOC)){...}

我有一个查询使用while循环打印出数据。

如何检查while循环是否未获取任何数据(db中的0行),因此我可以在屏幕上打印“0 result”。

我不想对COUNT(*)进行额外查询,是否可以通过while循环进行检查?

3 个答案:

答案 0 :(得分:1)

您必须先使用$sth = $query->execute()(和$sth->fetch()代替$ query-> fetch()),然后$sth->rowCount会为您提供结果数。

答案 1 :(得分:0)

只需在循环中放置一个标记,以确保至少输入一次。

类似的东西:

$flag = false;
$query=$db->prepare("SELECT *...");
while($data=$query->fetch(PDO::FETCH_ASSOC)){
    $flag = true;
}
if ($flag) {} //entered

添加分号,感谢@Fred -ii

答案 2 :(得分:0)

所以你想要计算你得到的结果数量。在这种情况下,您可以在循环内计算var:

while($data=$query->fetch(PDO::FETCH_ASSOC)){
    $i++;
    //your code here
}

如果您想检查是否没有数据,可以查看$data

while($data=$query->fetch(PDO::FETCH_ASSOC)){
    if($data === false) {
       echo "0 result";
    }
}