2016-08-12 29 views
0

我試圖從數據庫mysqli的,從中選擇時,PHP

$sql = "SELECT username 
FROM users"; 

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

做一個簡單的SELECT用戶名FROM用戶,但同時具有多個項目它給了我這個用的var_dump。

陣列(2){[0] =>串(0) 「」[ 「用戶名」] =>串(0) 「」}

這樣其他查詢工作正常

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

我找不到什麼是錯

+1

你需要使用循環 – devpro

+0

表名在查詢中有所不同 – Saurabh

+0

'db_user'表有一行,其中'username'是一個空字符串。這是您的查詢返回的第一行。 – Barmar

回答

1

使用while循環讓所有的用戶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

我要使用它,但foreach呢? –

+0

看看這裏http://stackoverflow.com/questions/9757316/use-a-foreach-loop-instead-of-while-with-myslqli-fetch-array – Saurabh

+0

你必須使用while coz它提取一行在一次,如果沒有行,則返回false.hence循環結束。而foreach迭代每個數組的值 – Saurabh

0

mysqli_fetch_array從結果集只獲取一行。

考慮使用mysqli_fetch_all來獲得所有結果。

而且它是很好的使用效果作爲關聯數組只給

mysqli_fetch_all($select_sql, MYSQLI_ASSOC);

+0

謝謝你 –