如何在php中输出这样的

时间:2016-03-10 12:21:58

标签: php json

我想在php中实现这个输出。

[
    {
        "id": 1388534400000,
        "author": "Pete Hunt",
        "text": "Hey there!"
    },
    {
        "id": 1420070400000,
        "author": "Paul O’Shannessy",
        "text": "React is *great*!"
    }
]

我的后端有一个while loop

$pull = "SELECT * FROM mydb";
    $result = $con->query($pull);
    while($row = $result->fetch(PDO::FETCH_ASSOC)) {
        $json['id'] = $row['id'];
        $json['author'] = $row['author'];
        $json['text'] = $row['text'];
    }
    echo json_encode($json);

它只返回数据库中的最后一行,我想全部显示它们。

谢谢。

6 个答案:

答案 0 :(得分:4)

如果您的$row仅包含数据库中的这三个字段,请使用以下代码,否则请@ govindkr13回答

$pull = "SELECT * FROM mydb";
$result = $con->query($pull);
$json = [];
while($row = $result->fetch(PDO::FETCH_ASSOC)) {
    $json[] = $row;
}
echo json_encode($json);

答案 1 :(得分:3)

每次只是覆盖你的$ json数组。试试这个:

$i=0;
while($row = $result->fetch(PDO::FETCH_ASSOC)) {
        $json[$i]['id'] = $row['id'];
        $json[$i]['author'] = $row['author'];
        $json[$i]['text'] = $row['text'];
        $i++;
    }
    echo json_encode($json);

答案 2 :(得分:3)

使用此

$pull = "SELECT * FROM mydb";
$result = $con->query($pull);
$final = [];
while($row = $result->fetch(PDO::FETCH_ASSOC)) {
    $json['id'] = $row['id'];
    $json['author'] = $row['author'];
    $json['text'] = $row['text'];
    $final[] = $json;
}
echo json_encode($final);

答案 3 :(得分:2)

也许这会有所帮助。

while($row = $result->fetch(PDO::FETCH_ASSOC)) {
    $json[$row['id']]['author'] = $row['author'];
    $json[$row['id']]['text'] = $row['text'];
}

答案 4 :(得分:2)

$i=0;
while($row = $result->fetch(PDO::FETCH_ASSOC)) {
        $json[$i]['id'] = $row['id'];
        $json[$i]['author'] = $row['author'];
        $json[$i]['text'] = $row['text'];
        $i++;
    }
    echo json_encode($json);

答案 5 :(得分:1)

试试这个

$count=0;
while($row = $result->fetch(PDO::FETCH_ASSOC)) {
$json[$count]['id'] = $row['id'];
$json[$count]['author'] = $row['author'];
$json[$count]['text'] = $row['text'];
$count++;
}
echo json_encode($json);