从SQL表中获取所有内容并将它们插入到PHP数组中

时间:2014-01-19 06:13:28

标签: php mysql sql arrays json

所以我从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);
?>

3 个答案:

答案 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;
}