Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查并循环输出查询中的任何数据_Php - Fatal编程技术网

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

Php 检查并循环输出查询中的任何数据,php,Php,我有一个查询使用,而循环打印数据 如何检查while循环是否未提取任何数据(从数据库中提取0行),以便在屏幕上打印“0结果” 我不想对COUNT(*)进行额外的查询,是否可以从while循环中进行检查?只需在循环中添加一个标志,以确保至少输入一次 比如: $query=$db->prepare("SELECT *... while($data=$query->fetch(PDO::FETCH_ASSOC)){...} 添加了分号,谢谢您必须先使用$sth=$query->execu

我有一个查询使用,而循环打印数据

如何检查while循环是否未提取任何数据(从数据库中提取0行),以便在屏幕上打印“0结果”


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

只需在循环中添加一个标志,以确保至少输入一次

比如:

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

添加了分号,谢谢

您必须先使用
$sth=$query->execute()
(和
$sth->fetch()
而不是$query->fetch()),然后
$sth->rowCount
将给出结果的数量。

因此您需要计算得到的结果数量。在这种情况下,您可以在循环中向上计数一个变量:

$flag = false;
$query=$db->prepare("SELECT *...");
while($data=$query->fetch(PDO::FETCH_ASSOC)){
    $flag = true;
}
if ($flag) {} //entered
如果要检查是否没有数据,可以检查
$data

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

如果(!$data)
可能会在
prepare()
fetch()
之间做手脚,则必须调用
execute()
。。。只是说,“…缺少
$flag=false的结尾分号”
while($data=$query->fetch(PDO::FETCH_ASSOC)){
    if($data === false) {
       echo "0 result";
    }
}