php查询数据输出json,PHP中把数据库查询结果输出为json格式

header("Content-type:text/html;charset=utf-8");//字符编码设置

$servername = "localhost";

$username = "root";

$password = "root";

$dbname = "tjks";

// 创建连接

$con =mysqli_connect($servername, $username, $password, $dbname);

// 检测连接

$sql = "SELECT * FROM brands";

$result = mysqli_query($con,$sql);

if (!$result) {

printf("Error: %s\n", mysqli_error($con));

exit();

}

$jarr = array();

while ($rows=mysqli_fetch_array($result,MYSQL_ASSOC)){

$count=count($rows);//不能在循环语句中,由于每次删除 row数组长度都减小

for($i=0;$i

unset($rows[$i]);//删除冗余数据

}

array_push($jarr,$rows);

}

print_r($jarr);//查看数组

echo "
";

echo '


';

echo '编码后的json字符串:';

echo $str=json_encode($jarr);//将数组进行json编码

echo '
';

$arr=json_decode($str);//再进行json解码

echo '解码后的数组:';

print_r($arr);//打印解码后的数组,数据存储在对象数组中

mysqli_close($con);

?>

输出内容如下:

Array ( [id] => 1 [name] => GNC ) Array ( [id] => 2 [name] => TCBJ ) Array ( [id] => 3 [name] => TJKS )

Unicode编码后的json数据: [{"id":"1","name":"GNC"},{"id":"2","name":"TCBJ"},{"id":"3","name":"TJKS"}]

可以看到,直接进行json_encode();编码,是将三个数组分别转为了json格式,而且两端会出现中括号!!还有另外一种写法

header("Content-type:text/html;charset=utf-8");//字符编码设置

$servername = "localhost";

$username = "root";

$password = "root";

$dbname = "tjks";

// 创建连接

$con =mysqli_connect($servername, $username, $password, $dbname);

// 检测连接

$sql = "SELECT * FROM brands";

$result = mysqli_query($con,$sql);

if (!$result) {

printf("Error: %s\n", mysqli_error($con));

exit();

}

$jarr = array();

while ($rows=mysqli_fetch_array($result,MYSQL_ASSOC)){

$count=count($rows);//不能在循环语句中,由于每次删除 row数组长度都减小

for($i=0;$i

unset($rows[$i]);//删除冗余数据

}

array_push($jarr,$rows);

}

print_r($jarr);//查看数组

echo "
";

echo '


';

$jobj=new stdclass();//实例化stdclass,这是php内置的空类,可以用来传递数据,由于json_encode后的数据是以对象数组的形式存放的,

//所以我们生成的时候也要把数据存储在对象中

foreach($jarr as $key=>$value){

$jobj->$key=$value;

}

echo '传递属性后的对象:';

print_r($jobj);//打印传递属性后的对象

echo '
';

echo '编码后的json字符串:'.json_encode($jobj).'
';//打印编码后的json字符串

mysqli_close($con);

?>

输出内容如下:

Array ( [0] => Array ( [id] => 1 [name] => GNC ) [1] => Array ( [id] => 2 [name] => TCBJ ) [2] => Array ( [id] => 3 [name] => TJKS ) )

传递属性后的对象:stdClass Object ( [0] => Array ( [id] => 1 [name] => GNC ) [1] => Array ( [id] => 2 [name] => TCBJ ) [2] => Array ( [id] => 3 [name] => TJKS ) )

编码后的json字符串:{"0":{"id":"1","name":"GNC"},"1":{"id":"2","name":"TCBJ"},"2":{"id":"3","name":"TJKS"}}

这样一来,中括号没有了,数组也成为了有序的数组!

读取mysql数据库的数据,转为json格式

# coding=utf-8 ''' Created on 2016-10-26 @author: Jennifer Project:读取mysql数据库的数据,转为json格式 ''' import ...

CodeIgniter (CI)框架中的数据库查询汇总

引言: 前两天业务涉及到一个拉取答题排行榜的需求,数据库里数据是这样的: 同一个人可能提交过多次成绩,所以同一个人可能会有多次记录: 同一个人提交的多次成绩中可能有至少两次成绩是一样的. 于是,查询的 ...

C++ OCCI API数据库操作之连接、返回查询结果集为json格式

使用C++操作数据库,转换返回结果集为json格式,易于解析. 以下程序的编译.运行环境:Windows 10 1803.VS2017 17.5.2(vc14).解决方案配置:Release.解决方案 ...

PHP简单获取数据库查询结果并返回JSON

前端技术之:如何在控制台将JS class实例输出为JSON格式

有一个类: class Point { constructor(x, y) { this.x = x; this.y = y; } } 如果我们在控制台中输出其实例: console.log(new ...

网络传输中利用fastjson将复杂嵌套数据类型Json格式转换(GeoJsonPolygon)

如果一个对象太复杂了,那么在网络传输键的JSON格式数据转换容易出问题. 比如下面一个类Area.java import lombok.AllArgsConstructor; import lombo ...

获取一个表单字段中多条数据并转化为json格式

如图需要获取下面两个li标签里面的数据,然后传给后台:而后台接收的数据格式是json的,所以需要把两个li里面的信息转化为以下格式的. {recieverName:小红,recieverPhone:1 ...

在thinkphp5.0中调用ajax时, 返回的JSON 格式数据在html前台不能用时

在thinkphp5.0中调用ajax时,如果控制器返回的数据为json格式,视图层接收到返回值即为json格式的数据,此时应该把 JSON 文本转换为 JavaScript 对象,方便调用.具体代码 ...

提取url中参数的方法(转换成json格式)

还是直接上代码吧. //将url中的参数获取到并抓换成json格式 function serilizeUrl(url){ var urlObject={}; //1.正则匹配是不是以?结尾 if(/\ ...

随机推荐

Linux - 常见Shell文本处理方法

Common Shell Text Processing 珠玉在前,不再赘言. Linux Shell 文本处理工具集锦:http://blog.jobbole.com/99063/ 数据工程师常用的 ...

jquery-练习-折叠效果

js dorado

1.dorado http://bsdn.org/projects/dorado7/deploy/sample-center/com.bstek.dorado.sample.Main.d#40350

c#导入excel 绑定数据 repeat为例子

先读取Excel文件并存到dataset public DataSet ExcelToDataTable(string filename, string strsheetname) { try { / ...

linux下mysql忘记密码的解决方案

1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库.  因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的  状态下,其他的用户也可以任意地 ...

ORACLE——获取随机数

在oracle中获取一个指定的随机数: --(DBMS_RANDOM.VALUE(INT NUM1,INT NUM2),比如: ,) FROM DUAL; --结果:8.23602331029803 ...

asp.net core2.1 bundleconfig.json合并压缩资源文件

在asp.net core中则可以使用BuildBundlerMinifier来进行css,js的压缩合并 1.使用NuGet安装 BuildBundlerMinifier(也可以在vs中下载安装扩展 ...

学Java的第17天。呃。。。今天有点奇葩

神奇的老师在网上看到狗跳楼的视频然后就想到抛物线问题: 还是 属性和方法的调用: package sklx; public class Dog{ private float v = 30.0f; pr ...

宠物属性控制_pet

classIndex 职业索引 DmgAddPct 根据职业的法伤或攻强来计算宠物增加的物理伤害,增加的伤害值等于玩家法伤或攻强的百分比 SpAddPct 根据职业的法伤或攻强来计算宠物增加的法术伤害 ...

Unity Profiler连接Android真机调试

Profiler在Editor模式就可以观看性能消耗,但是毕竟电脑配置高,跟手机真机环境还是有区别.实际开发中的优化还是推荐用真机测试. 因为IOS一般比Android手机的配置高,在Android平 ...

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值