[英]Fetching number of rows after PDO execute
我試圖在搜索后顯示數據庫中找到的行數。
這是我的代碼:
$city = $_POST['city'];
$bloodType = $_POST['donorType'];
$q = $db->prepare("SELECT count(*) FROM `users` AS numusers WHERE `city` = :city AND `bloodType` = :bloodType");
$q->bindValue(":city",$city,PDO::PARAM_INT);
$q->bindValue(":bloodType",$bloodType);
$q->execute();
while($row = $q->fetch(PDO::FETCH_ASSOC)){
echo "<p align='center'><h5> There is/are <span class='red-text'>".$row['numusers']."</span> available donor(s) found.
You must be a <b><a href='register.php'>registered user</a></b> to view their details.</h5></p>";
}
這是我做的最后一次嘗試。 我收到此錯誤消息`注意:未定義的索引:numusers
我該如何解決這些提示?
只需創建count(*)
別名
SELECT count(*) AS numusers..
這將是
$q = $db->prepare("SELECT count(*) AS numusers FROM `users` WHERE `city` = :city AND `bloodType` = :bloodType");
PDO中有一種特殊方法可以檢索此類數據 - 查詢返回的單個值PDOStatement :: fetchColumn() 。 所以你根本不必麻煩別名。
此外,while循環在這里是多余的。
$city = $_POST['city'];
$bloodType = $_POST['donorType'];
$q = $db->prepare("SELECT count(*) FROM `users` WHERE `city` = :city AND `bloodType` = :bloodType");
$q->bindValue(":city", $city, PDO::PARAM_INT);
$q->bindValue(":bloodType", $bloodType);
$q->execute();
$numusers = $q->fetchColumn();
echo "<p align='center'><h5> There is/are <span class='red-text'>$numusers</span> available donor(s) found.
You must be a <b><a href='register.php'>registered user</a></b> to view their details.</h5></p>";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.