我使用以下代码从我的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();
}
但我收到以下错误:
致命错误:字符串
不支持[]运算符
答案 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)
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;
}
通过这种方式,您可以获得单个阵列中的所有数据。密钥与数据库字段相同。