php mysql json 读取数据_使用MySQL和PHP读取部分json数据

这篇博客讲述了如何在PHP中处理从MySQL获取的JSON格式数据。作者面临的问题是在一个包含多个资源的数组中查找特定键'XNCatnCode'的值。通过遍历和解码JSON数据,他们最终找到了正确的方法来检查每个产品资源中的'XNCatnCode'是否等于特定值(在这种情况下是3)。解决方案涉及使用`json_decode`函数将JSON字符串转换为PHP数组,并使用嵌套循环来搜索目标键。
摘要由CSDN通过智能技术生成

我使用CMS在

MySQL中以JSON格式保存资源(在一个表中).

连同MySQL的普通数据.当我遍历数据时,我得到一个JSON数据的数组.但我需要在JSON数据中搜索XNCatnCode.

试图加载数据

$Products = $SQL->fetchAll("SELECT * FROM `pages` WHERE `parent` = 1");

foreach ($Products as $Product => $value) {

foreach (json_decode($value['resources'], true) as $resources => $data) {

// var_dump($resources);

foreach ($resources['XNCatnCode'] as $resource => $value) {

# code...

// }

}

}

}

我可以使用var_dump($resources)转储数据;在第二个循环中.

那会回来

string(5) "Model"

string(8) "ItemCode"

string(8) "ItemDesc"

string(7) "ExtDesc"

但我无法遍历数据,搜索XNCatnCode. (该值必须为3).

当我直接通过$Products = $SQL-> fetchAll(“SELECT * FROMpagesWHEREparent = 1”)中的var_dump查看转储时.我得到这个数据:)

最重要的是,我如何循环json数据并选择所有拥有XNCatnCode 3 :)的产品?

array(1) {

[0]=>

array(26) {

["id"]=>

string(1) "3"

["trunk"]=>

string(0) ""

["parent"]=>

string(1) "1"

["in_nav"]=>

string(2) "on"

["nav_title"]=>

string(9) "USB STICK"

["route"]=>

string(9) "usb-stick"

["path"]=>

string(19) "producten/usb-stick"

["title"]=>

string(9) "USB STICK"

["meta_keywords"]=>

string(0) ""

["meta_description"]=>

string(0) ""

["open_graph"]=>

NULL

["seo_invisible"]=>

string(0) ""

["template"]=>

string(8) "Products"

["external"]=>

string(0) ""

["new_window"]=>

string(0) ""

["resources"]=>

string(1898) "{

"Model": "Simple",

"ItemCode": "Mijn COde",

"ItemDesc": "Gaaf ding",

"ExtDesc": "Heeeeeeel gaaf ding",

"ItemKeywords": "Gaaf",

"Size": "5 meter",

"SizeGrid": "",

"Gender": "",

"WeightGR": "",

"LengthCM": "",

"HeightCM": "",

"WidthCM": "",

"DiameterCM": "",

"SizeCombined": "",

"QtyperCarton": "",

"DecoPackagingIndiv": "",

"DecoPackagingIndivType": "",

"DecoPackaging": "",

"GrossWeightKG": "",

"NettWeightKG": "",

"ExportLcm": "",

"ExportWcm": "",

"ExportHcm": "",

"CountryOfOrigin": "",

"HSCode": "",

"ImpAllMethods": "",

"ImpMethodDefault": "",

"ImpAllPositions": "",

"ImpPositionDefault": "",

"ImpPositionSimpleDefault": "",

"ImpWidthDefaultMM": "",

"ImpHeightDefaultMM": "",

"ImpDiameterDefaultMM": "",

"ImpSizeDefaultMM": "",

"MaxColoursDefault": "",

"Brand": "",

"XNGroupCode": "",

"XNGroupDesc": "",

"XNCatnCode": "3",

"XNCatDesc": "",

"ColorDesc": "",

"SimpleColor": "",

"PMSColorReference": "",

"BasicColor": "",

"PenInkColor": "",

"Material": "",

"BatteryType": "",

"Features": "",

"BestSeller": "",

"EANCode": "",

"ThematicItem": "",

"Compliances": "",

"ImageMain": "",

"ImageDecoY1": "",

"ImageDecoY2": "",

"ImageDecoY3": "",

"ImagePackage": "",

"ImageFront": "",

"ImageBack": "",

"ImageExtra1": "",

"ImageExtra2": "",

"ImageExtra3": "",

"ImageDetail1": "",

"ImageDetail2": "",

"ImageDetail3": "",

"ImagePrintLinesDefault": "",

"MarkSegment": "",

"MainCat": "",

"EOYCat": "",

"LaunchDate": "",

"Language": "",

"HEXcolor": "",

"ImageGroup": "",

"ImageMood1": "",

"ImageMood2": "",

"ImageMood3": "",

"ImageModel": "",

"VideoUrl1": "",

"VideoUrl2": "",

"NewItem": ""

}"

["archived"]=>

string(0) ""

["archived_inherited"]=>

string(0) ""

["publish_at"]=>

NULL

["expire_at"]=>

NULL

["max_age"]=>

string(1) "0"

["last_edited_by"]=>

string(1) "1"

["ga_page_views"]=>

string(1) "0"

["position"]=>

string(1) "0"

["created_at"]=>

string(19) "2018-12-25 08:27:55"

["updated_at"]=>

string(19) "2018-12-26 05:33:41"

}

}

最佳答案

foreach ($Products as $Product)

{

$decoded = json_decode($Product['resources'], true);

if(isset($decoded['XNCatnCode']))

{

//This $Product has XNCatnCode

}

}

我在JSON解码之前删除了$.所以脚本工作:)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值