我有一个完美无缺的foreach循环。
foreach ($row AS $row) {
echo $row['id'];
}
有时候没有返回任何行。我想要回应'没有行';什么时候没有行。问题是如果我尝试做如下的事情:
foreach ($row AS $row) {
if (!isset($row['id'])) {
echo 'there are no rows';
} else {
echo $row['id'];
}
}
它永远不会返回“没有行”的回声。我假设这是因为当没有行时,foreach循环不会运行。问题变成了,当有行时,如果没有行而没有干扰foreach,我怎么回应“没有行”。
我也尝试过以下代码:
$row1 = $stmt->fetch();
$row = $stmt->fetchAll();
if (isset($row1['id'])) {
foreach ($row AS $row) {
仍然没有运气
所以期望的结果如下:
When loop runs:
1
2
3
4
When loop doesn't run:
there are no rows
答案 0 :(得分:5)
你应该在循环之前检查一下
if(count($row)>0){
//foreach ...
}else{
echo 'no data';
}
答案 1 :(得分:4)
测试数组是否为空:
if (empty($row)) {
echo "there are no rows";
} else {
foreach($row as $row) {
...
}
}