mySQL获取数据介绍一个关联数组

时间:2015-04-27 13:10:23

标签: php mysql

我使用以下代码从我的db获取用户列表:

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


    while ($row = $result->fetch_assoc()) {
        $username[]  = $row["user_name"];
        $user_email[] = $row["user_email"];
        $user_name[] = $row["name"];
        $user_surname[] = $row["surname"];
        $avatar[] = $row["avatar"];

    }

    $result->close();
}

但我收到以下错误:

  

致命错误:字符串

不支持[]运算符

4 个答案:

答案 0 :(得分: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'];
  }

等等

答案 1 :(得分: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"];
}

答案 2 :(得分:0)

如果你想将这些数组放入数组,你应该采用一个空数组befor循环。像这样

 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();
    }

另外,你应该删除[]

答案 3 :(得分:0)

你也可以这样做 -

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

通过这种方式,您可以获得单个阵列中的所有数据。密钥与数据库字段相同。