MySql PHP选择JSON值
我有这个SQL查询MySql PHP选择JSON值,php,mysql,arrays,json,Php,Mysql,Arrays,Json,我有这个SQL查询 $sql = "SELECT playerjson FROM `clans` WHERE playercount > ? AND level > ? AND score > ?"; $selectstmt = $con->prepare($sql); $selectstmt->bind_param('iii',$playercountvar,$levelvar,$scorevar); $selectstmt->execute(); //ex
$sql = "SELECT playerjson FROM `clans` WHERE playercount > ? AND level > ? AND score > ?";
$selectstmt = $con->prepare($sql);
$selectstmt->bind_param('iii',$playercountvar,$levelvar,$scorevar);
$selectstmt->execute(); //execute select statement
$result = $selectstmt->get_result(); //get select statement results
playerjson
是一个大型JSON数组
[
{
"avatar":{
"userId":253404325847,
"currentHomeId":253404325847,
"userName":"enal",
"role":"Member",
"level":62,
"league":8,
"trophies":1707,
"donatedTroops":0,
"receivedTroops":0,
"clanRank":1,
"lastClanRank":2,
"inWar":1
}
},
{
"avatar":{
"userId":158925253577,
"currentHomeId":158925253577,
"userName":"Valen kamja",
"role":"Leader",
"level":54,
"league":8,
"trophies":1693,
"donatedTroops":1054,
"receivedTroops":2131,
"clanRank":2,
"lastClanRank":3,
"inWar":1
}
},
{
"avatar":{
"userId":296357929514,
"currentHomeId":296357929514,
"userName":"\u0645\u064c\u0648\u0646\u0633\u062a\u064d\u0631502",
"role":"Member",
"level":59,
"league":7,
"trophies":1568,
"donatedTroops":0,
"receivedTroops":0,
"clanRank":3,
"lastClanRank":0,
"inWar":1
}
},
{
"avatar":{
"userId":283468864924,
"currentHomeId":283468864924,
"userName":"tolzz",
"role":"Co-Leader",
"level":64,
"league":7,
"trophies":1312,
"donatedTroops":34,
"receivedTroops":456,
"clanRank":4,
"lastClanRank":4,
"inWar":1
}
},
{
"avatar":{
"userId":257703167804,
"currentHomeId":257703167804,
"userName":"hailery",
"role":"Co-Leader",
"level":58,
"league":6,
"trophies":1219,
"donatedTroops":21,
"receivedTroops":404,
"clanRank":5,
"lastClanRank":5,
"inWar":1
}
},
{
"avatar":{
"userId":210456177319,
"currentHomeId":210456177319,
"userName":"chey lie",
"role":"Co-Leader",
"level":79,
"league":0,
"trophies":1101,
"donatedTroops":0,
"receivedTroops":0,
"clanRank":6,
"lastClanRank":6,
"inWar":0
}
}
]
我要做的就是将用户ID
和当前HomeID
存储在一个数组中,该数组将位于父数组中
因为我需要从中获取子数组,并在url中逐个传递这些参数<代码>爆炸不能用这个,是吗
我将如何实现这一目标?我还需要一种改进SQL语句的方法,这样我就不会像那样检索整个JSON,因为这可能需要更长的时间。您拥有的是一个JSON编码的Atray。因此,请使用
json\u decode()
对其进行解码
$arr1 = json_decode($result);
foreach ($arr1 as $row) {
echo $row->avatar->userId."-------".$row->avatar->currentHomeId."<br>" ;
}
$arr1=json\u解码($result);
foreach($arr1作为$row){
echo$row->avatar->userId。“----”$row->avatar->currentHomeId。“
”;
}
您拥有的是一个json编码的Atray。因此,请使用json\u decode()
对其进行解码
$arr1 = json_decode($result);
foreach ($arr1 as $row) {
echo $row->avatar->userId."-------".$row->avatar->currentHomeId."<br>" ;
}
$arr1=json\u解码($result);
foreach($arr1作为$row){
echo$row->avatar->userId。“----”$row->avatar->currentHomeId。“
”;
}
解码结果字符串并将其作为stdclass进行迭代:
$json = json_decode($result);
$parent = array();
foreach($json as $item) {
$parent[] = array('userId' => $item->avatar->userId, 'currentHomeId' => $item->avatar->currentHomeId);
}
echo '<pre>';
print_r($parent);
echo '</pre>';
等等。要将$parent
作为URL字符串传递,只需使用json\u encode
将其字符串化:
var value = window.location.href.split('?values=')[1],
array = JSON.parse(unescape(value));
console.log(array);
给出?值=[{“用户”:25340432547,“当前家庭ID”:25340432547},{“用户”:15895253577,
等
这将自动转义,您可以使用
现在,您可以将数组作为JSON对象客户端。有很多方法可以做到这一点。这只是一个简单的建议。解码结果字符串并将其作为stdclass进行迭代:
$json = json_decode($result);
$parent = array();
foreach($json as $item) {
$parent[] = array('userId' => $item->avatar->userId, 'currentHomeId' => $item->avatar->currentHomeId);
}
echo '<pre>';
print_r($parent);
echo '</pre>';
等等。要将$parent
作为URL字符串传递,只需使用json\u encode
将其字符串化:
var value = window.location.href.split('?values=')[1],
array = JSON.parse(unescape(value));
console.log(array);
给出?值=[{“用户”:25340432547,“当前家庭ID”:25340432547},{“用户”:15895253577,
等
这将自动转义,您可以使用
现在,您可以将数组作为JSON对象客户端。有很多方法可以做到这一点。这只是一个简单的建议。我将为您编写一些代码…给我一秒钟:-)我将为您编写一些代码…给我一秒钟:-)我想尝试避免获取整个JSON字符串,因为这可能需要更长的时间。您不需要所有数据吗?我只需要需要json数组中的userId和currentHomeId您需要所有的userId和currentHomeId??是的,我需要所有的,但是json中的其余内容不需要。我想尝试避免获取整个json字符串,因为这可能需要更长的时间。不需要所有数据??我只需要json数组中的userId和currentHomeId您需要ed all user id和all currenthome id??是的,我需要所有这些,但JSON中的其他内容不需要。然后我如何使用它们在URL字符串中传递参数?比方说:我添加了另一个foreach($parent as$id),并计划在其中完成所有操作?@ShivamPaw,不-仅在一行中。你有数组,JSON_encode将其转换“返回”到您可以传递的字符串…@hanshenrik,是的,但在本例中不是nessecary;数组只包含数字和字母,大括号和方括号是完全合法的。然后我如何使用它们通过URL字符串中的参数传递它们呢?比方说:我添加了另一个foreach($parent as$id)计划在那里全部完成吗?@Shivanpaw,不-只有一行。你有数组,json_encode将它“返回”到一个可以传递的字符串…@hanshenrik,是的,但在这种情况下不是nessecary;数组只包含数字和字母,大括号和方括号是完全合法的。