2017-06-16 1 views
0

Unten ist PHP-Code, von dem ich eine Reihe von Zeilen in einer Datenbanktabelle abrufe. Der folgende Code gibt jedoch immer eine Anzahl von Zeilen als 1 zurück. Bitte helfen Sie mir, das Problem zu lösen, die richtige Anzahl von Zeilen aus der Datenbank zu holen.SQL-Count-Abfrage, die die Anzahl der als 1 voreingestellten Zeilen anstelle der tatsächlichen Anzahl an Zeilen zurückgibt

$db=mysqli_connect("localhost","root","","test");    
    echo "<div class='row text-center col-lg-12' align='center'>";  
    $cmd="SELECT COUNT(*) FROM product WHERE product_name LIKE '%$search_query%'"; 

    $result = mysqli_query($db, $cmd); 
    $total = mysqli_num_rows($result); 
+0

haben Sie versucht, die gleiche Abfrage in dem SQL-Abschnitt von phpMyAdmin zum Beispiel Laufen oder direkt in mysql? Wenn ja, wie kommt es zurück? – SebastianGreen

+1

'COUNT (*)' ist die Anzahl der Zeilen (als 1 Zeile). Wählen Sie den Wert ... oder geben Sie alle Zeilen zurück und verwenden Sie dann die Funktion 'num_rows'. Sie sollten die Abfrage auch parametrisieren. – chris85

Antwort

2

Wenn Sie eine SELECT COUNT(*) tun, werden Sie eine Zeile zurück, wo der Zählwert in der ersten Spalte ist. So müssen Sie den COUNT() Wert wie folgt erhalten:

$result = mysqli_query($db, $cmd); 
$row = mysqli_fetch_array($result); 
$total = $row[0]; 
0

Dies sollte funktionieren:

$db=mysqli_connect("localhost","root","","test");    
    echo "<div class='row text-center col-lg-12' align='center'>";  
    $cmd="SELECT * FROM product WHERE product_name LIKE '%$search_query%'"; 

    $result = mysqli_query($db, $cmd); 
    $total = mysqli_num_rows($result); 
Verwandte Themen