2016-03-28 14 views
1

Ich versuche, die Anzahl der Zeilen in der Datenbank nach der Suche zu zeigen.Abrufen der Anzahl der Zeilen nach PDO ausführen

Hier ist mein Code:

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

Das ist der letzte Versuch ich. Und ich bekomme diese Fehlermeldung `Hinweis: Undefinierter Index: numusers

Wie löse ich diese Tipps?

+0

Es sollte so sein SELECT Anzahl (*) als numusers – Indrajit

Antwort

2

Erstellen Sie einfach Alias ​​count(*)

SELECT count(*) AS numusers.. 

Es

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

'Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MariaDB-Server-Version für die richtige Syntax entspricht, um in der Nähe von 'AS 'numusers'' users' zu verwenden. WHERE 'city' =' 3 'UND' bloodType' = '4''' Ich erhalte diese Fehlermeldung – Jerlon

+1

entfernen backtick von 'numusers' benutzen Sie einfach' SELECT count (*) AS numusers..' – Saty

+0

Es hieß immer noch nicht identifizierter Index. – Jerlon

1

Es wäre, ist eine spezielle Methode in PDO diese Art von Daten abzurufen - einen einzelnen Wert von der Abfrage zurückgegeben, PDOStatement::fetchColumn(). Sie müssen sich also nicht mit Aliasen herumärgern.

Außerdem ist hier eine while-Schleife überflüssig.

+0

Wow: D Danke: D – Jerlon

Verwandte Themen