Intereting Posts

Получение количества строк после выполнения PDO

Я пытаюсь показать количество строк, найденных в базе данных после поиска.

Вот мой код:

$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>"; } 

Это последняя попытка, которую я сделал. И я получаю это сообщение об ошибке `Примечание: Undefined index: numusers

Как решить эти советы?

Related of "Получение количества строк после выполнения PDO"

Просто создайте псевдоним count(*)

 SELECT count(*) AS numusers.. 

Это было бы

 $q = $db->prepare("SELECT count(*) AS numusers FROM `users` WHERE `city` = :city AND `bloodType` = :bloodType"); 

В PDO существует специальный метод для извлечения данных такого типа – единственное значение, возвращаемое запросом, PDOStatement :: fetchColumn () . Таким образом, вам не нужно хлопотать с псевдонимами вообще.

Кроме того, здесь существует избыточный цикл.

 $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>";