$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()'...只是說'... –