2015-04-27 35 views
1

我使用下面的代碼從我的數據庫中的用戶列表中的關聯數組:MySQL的獲取數據的介紹

​​

,但我得到了以下錯誤:

Fatal error: [] operator not supported for strings

+1

沒有你初始化所有的變量('$的用戶名,$ USER_EMAIL .. 。etc')作爲數組使用之前? –

+0

mySQL獲取數據介紹一個asociative數組....什麼是問題 – DevLakshman

回答

1

這可能是你想要做什麼:

$rows = array(); 
    while ($row = $result->fetch_assoc()) { 
     $rows[] = $row; 
    } 
    // $rows is now an array that contains each individual row from your result set 

那麼你可以做任何你想用這些數據,例如,在一個表或任何顯示。

foreach($rows as $user) 
    { 
    echo $user['user_name'] . ' - ' . $user['user_email']; 
    } 

等等

0

你應該採取的如果你想把這些數組放到數組中,請使用空數組。這樣

if ($result = mysqli_query($mysqli, "SELECT user_name, name, surname, avatar, user_email FROM users")) { 

    $results=array(); 

     while ($row = $result->fetch_assoc()) { 
      $results []=$row; 

     } 

     $result->close(); 
    } 

其他明智的你應該刪除[]

0

你可以做到這一點也 -

$user_data = array(); 
while ($row = $result->fetch_assoc()) { 
    $user_data[] = $row; 
} 

通過這個你可以在一個陣列中的所有數據。密鑰將與數據庫字段相同。

1

你的$ username變量已經在某處你已經發布的代碼塊之前的代碼設置爲一個字符串。如果你使用$ username = array();你會失去這個變量。我不知道你是否需要它。

這裏是一個更好的方法去做:

$users = array(); 
while ($row = $result->fetch_assoc()) { 

$users[] = array(
     "username" => $row["user_name"], 
     "email" => $row["user_email"], 
     "name"  => $row["name"], 
     "surname" => $row["surname"], 
     "avatar" => $row["avatar"] 
    ); 

} 

,您可以使用循環的foreach用戶:

foreach($users as $user){ 
    echo $user["username"]; 
    echo $user["email"]; 
}