Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中像这样输出_Php_Json - Fatal编程技术网

如何在php中像这样输出

如何在php中像这样输出,php,json,Php,Json,我想用php实现这个输出 [ { "id": 1388534400000, "author": "Pete Hunt", "text": "Hey there!" }, { "id": 1420070400000, "author": "Paul O’Shannessy", "text": "React is *great*!" } ] 我在下面的后端中有一个whil

我想用php实现这个输出

[
    {
        "id": 1388534400000,
        "author": "Pete Hunt",
        "text": "Hey there!"
    },
    {
        "id": 1420070400000,
        "author": "Paul O’Shannessy",
        "text": "React is *great*!"
    }
]
我在下面的后端中有一个
while循环

$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);
它只返回数据库中的最后一行,我想全部显示它们


谢谢。

您每次都只是覆盖$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);
用这个

$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);
也许这会有帮助

while($row = $result->fetch(PDO::FETCH_ASSOC)) {
    $json[$row['id']]['author'] = $row['author'];
    $json[$row['id']]['text'] = $row['text'];
}
$i=0;
而($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)试试这个

$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);

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

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

替换
$json['id']=$row['id']$json['author']=$row['author']$json['text']=$row['text']
$json[]=$row@Mark Baker谢谢你的聪明回答!很有魅力!。你应该把这当作答案,而不是评论。马克·贝克有最简单的答案,戈文德克13也很有帮助,但是,维尼把一切都说清楚了,这就是为什么我选择他作为最好的答案。希望你们能理解。谢谢大家!!干杯谢谢@govindkr13,你的代码行得通。但最简单的答案来自上面的马克·贝克。