2016-08-12 8 views
0

Ich versuche, eine einfache SELECT username FROM Benutzer aus einer Datenbank zu tunMysqli, wählen Sie aus, php

$sql = "SELECT username 
FROM users"; 

$select_sql = mysqli_query($conn, $sql); 
$parse_sql = mysqli_fetch_array($select_sql); 
var_dump($parse_sql); 

aber es gibt mir dies mit var_dump während mehrere Einträge aufweist.

array (2) {[0] => string (0) "" [ "username"] => string (0) ""}

Andere Anfragen wie diese arbeiten gut

$sql = "SELECT username, password FROM users WHERE username ='$user'"; 
$select_sql = mysqli_query($conn, $sql); 

ich kann nicht finden, was von Ergebnismenge

+1

Sie Schleife – devpro

+0

Tabellennamen verwenden müssen, erhalten unterscheidet sich in Abfragen – Saurabh

+0

Die 'db_user' Tabelle hat eine Zeile, in der' Benutzername' eine leere Zeichenfolge ist. Es ist die erste Zeile, die von Ihrer Abfrage zurückgegeben wird. – Barmar

Antwort

1

Verwenden while Schleife alle Benutzer in db_user

$sql = "SELECT username 
FROM db_user"; 

$select_sql = mysqli_query($conn, $sql); 
while($parse_sql = mysqli_fetch_assoc($select_sql)) 
{ 
    $usernames[] = $parse_sql 
} 

var_dump($usernames); 
+0

Ich werde es benutzen, aber was ist mit foreach? –

+0

Werfen Sie einen Blick hier http://stackoverflow.com/questions/9757316/use-a-foreach-loop-instead-of-while-with-myslqli-fetch-array – Saurabh

+0

Sie müssen verwenden, während coz es eine Zeile an abholt eine Zeit und wenn es keine Zeilen gibt, gibt es false.hence Schleife endet. wohingegen foreach über jeden Array-Wert iteriert – Saurabh

0

mysqli_fetch_array holt falsch ist nur eine einzige Zeile.

Verwenden Sie mysqli_fetch_all, um alle Ergebnisse zu erhalten.

Auch ist es gute Ergebnisse als assoziatives Array zu verwenden, nur durch

geben

mysqli_fetch_all($select_sql, MYSQLI_ASSOC);

+0

danke dafür –