Json encode an entire mysql result set(JSON对整个MySQL结果集进行编码)
本文介绍了JSON对整个MySQL结果集进行编码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想用如下所示的php编码函数获得json
<?php
require "../classes/database.php";
$database = new database();
header("content-type: application/json");
$result = $database->get_by_name($_POST['q']); //$_POST['searchValue']
echo '{"results":[';
if($result)
{
$i = 1;
while($row = mysql_fetch_array($result))
{
if(count($row) > 1)
{
echo json_encode(array('id'=>$i, 'name' => $row['name']));
echo ",";
}
else
{
echo json_encode(array('id'=>$i, 'name' => $row['name']));
}
$i++;
}
}
else
{
$value = "FALSE";
echo json_encode(array('id'=>1, 'name' => "")); // output the json code
}
echo "]}";
我希望输出json类似于
{"results":[{"id":1,"name":"name1"},{"id":2,"name":"name2"}]}
但输出json如下所示
{"results":[{"id":1,"name":"name1"},{"id":2,"name":"name2"},]}
因为您意识到末尾有逗号,所以我想删除它,以便它可以是正确的json语法,如果我删除了echo ",";
,而json将像这样生成一个以上的结果{"results":[{"id":1,"name":"name1"}{"id":2,"name":"name2"}]}
,且该语法也是错误的
希望每个人都明白我的意思,任何想法都会受到欢迎
推荐答案
如果我是您,我不会json_encode
每个单独的数组,而是将这些数组合并在一起,然后json_encode
合并到最后的数组。以下是使用5.4's短数组语法的示例:
$out = [];
while(...) {
$out[] = [ 'id' => $i, 'name' => $row['name'] ];
}
echo json_encode($out);
这篇关于JSON对整个MySQL结果集进行编码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:JSON对整个MySQL结果集进行编码
基础教程推荐
猜你喜欢
- 如何在 XAMPP 上启用 mysqli? 2021-01-01
- PHP 守护进程/worker 环境 2022-01-01
- 在 yii2 中迁移时出现异常“找不到驱动程序" 2022-01-01
- 找不到类“AppHttpControllersDB",我也无法使用新模型 2022-01-01
- 在 CakePHP 2.0 中使用 Html Helper 时未定义的变量 2021-01-01
- phpmyadmin 错误“#1062 - 密钥 1 的重复条目‘1’" 2022-01-01
- 如何在 Symfony 和 Doctrine 中实现多对多和一对多? 2022-01-01
- 使用 PDO 转义列名 2021-01-01
- Doctrine 2 - 在多对多关系中记录更改 2022-01-01
- HTTP 与 FTP 上传 2021-01-01