所以我从MySQL表中获取元素,我想将它们变成一个数组,然后合并那个被编码成JSON的数组。它没有错误,但它只显示一个空的JSON字符串'[]'
<?php
include "connectdb.php";
$banned = array();
$query = mysql_query("SELECT * FROM banned");
while($row = mysql_fetch_array($query)) {
$user = array(
UserId => $row["userId"],
Reason => $row["reason"],
);
array_merge($banned,$user);
}
echo json_encode($banned);
?>
答案 0 :(得分:0)
看起来你只是想把一个$ user数组添加到$ banned数组中,而你用它作为一个对象。
要将某些内容推送到数组上,请使用array_push
或此表示法:
$banned[] = $user;
答案 1 :(得分:0)
你的php看起来很好,所以我们对你的数据库或查询做了很多。在查询后输入以下行:
echo mysql_num_rows($query);
查看此数字是否为0.如果是,您实际上并未从查询中获取任何信息。
如果这不能帮助找到问题,请在需要的时候继续使用echo。看看发生了什么以及为什么。这是您诊断问题的方式。回显$ row [&#34; userId&#34;],在编码之前回显$ banned变量,尽管这将采用var_dump()。回应一切,你找到你的问题。
答案 2 :(得分:0)
首先构建一个多维数组,并将其编码为JSON。
<?php
include "connectdb.php";
$banned = array();
$query = mysql_query("SELECT * FROM banned");
while($row = mysql_fetch_array($query)) {
$user = array(
UserId => $row["userId"],
Reason => $row["reason"],
);
$banned[] = $user;
}
echo json_encode($banned);
?>
然后,如果需要,您仍然可以像这样访问数组:
for ($i = 0; $i < count($banned); $i++) {
$UserID = $banned[$i]['UserID'];
$Reason = $banned[$i]['Reason'];
//Do something with this data like:
echo "User ".$UserID." was banned for ".$Reason;
}