$query=$db->prepare("SELECT *...
while($data=$query->fetch(PDO::FETCH_ASSOC)){...}
我有一个查询while循环打印出数据。查看while循环输出来自查询的任何数据
如何检查while循环是否没有取出任何数据(从db分配0行),因此我可以在屏幕上打印“0结果”。
我不想额外查询COUNT(*),是否有任何方式检查while循环?
$query=$db->prepare("SELECT *...
while($data=$query->fetch(PDO::FETCH_ASSOC)){...}
我有一个查询while循环打印出数据。查看while循环输出来自查询的任何数据
如何检查while循环是否没有取出任何数据(从db分配0行),因此我可以在屏幕上打印“0结果”。
我不想额外查询COUNT(*),是否有任何方式检查while循环?
只需在循环内放置一个标志,以确保至少输入一次。
喜欢的东西:
$flag = false;
$query=$db->prepare("SELECT *...");
while($data=$query->fetch(PDO::FETCH_ASSOC)){
$flag = true;
}
if ($flag) {} //entered
加分号,感谢@Fred -ii
缺少'$ flag = FALSE' –
你必须使用$sth = $query->execute()
(和$sth->fetch()
而不是$查询 - >取()),然后再$sth->rowCount
会给你多少的结果。
所以你要计算你得到的结果的数量。在这种情况下,你可以算一个变种了内环路:
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";
}
}
'如果($数据)''可以诀窍 –
在'prepare()'和'fetch()'之间,你必须调用'execute()'...只是说'... –