PHP中作为SQL WHERE参数的JSON数组
我从前面的查询中得到了这个json:PHP中作为SQL WHERE参数的JSON数组,php,sql,json,Php,Sql,Json,我从前面的查询中得到了这个json: {"HUID":"1","UIDS":"1,2,3","name":"home","type":"page","cat_id":"home"} 我把它打印成: $SJON_String = json_encode($returnArray[0]); echo $SJON_String; 很好,格式很好 现在,我提取UIDS字符串: $JSON_Decoded = json_decode($SJON_String); $JSON_UIDS = $JSON_
{"HUID":"1","UIDS":"1,2,3","name":"home","type":"page","cat_id":"home"}
我把它打印成:
$SJON_String = json_encode($returnArray[0]);
echo $SJON_String;
很好,格式很好
现在,我提取UIDS字符串:
$JSON_Decoded = json_decode($SJON_String);
$JSON_UIDS = $JSON_Decoded->{'UIDS'};
echo "1st JSON UIDS: ".$JSON_UIDS."<BR>";
现在,我想使用此字符串进行下一个查询:
foreach ($JSON_UIDS as $UID_get)
{
echo "Now: ".$UID_get. "<BR>";
$query2 = "SELECT *
FROM items
WHERE UID LIKE '%" . $UID_get. "%'
ORDER BY name";
if($result2 = $server->query($query2))
{
while ($row2 = $result2->fetch_assoc())
{
array_push($returnArray2, $row2);
}
}
foreach($JSON\u UIDS as$UID\u get)
{
echo“Now:”.$UID_get.
”;
$query2=“选择*
从项目
其中UID类似“%”,$UID\u get。“%”
按名称排序”;
如果($result2=$server->query($query2))
{
而($row2=$result2->fetch_assoc())
{
array_push($returnArray2,$row2);
}
}
它将给我一个错误:警告:为foreach()提供的参数无效,因为它不是有效的字符串对象
如果我用解码的JSON替换$JSON\u UID,它会工作,但这不是我想要的
我尝试用多种不同的方式格式化字符串,但我无法让它接受提取的字符串。我尝试在之前和之后声明为string(),并用引号将其格式化为“1,2,3”,这有点疯狂
必须有一个好的、有效的方法…您正在尝试循环字符串。请尝试将字符串转换为数组:
$UIDS = explode( ',', $JSON_UIDS );
foreach( $UIDS as $UID_get ) {
...
您正在尝试循环字符串。请尝试将字符串转换为数组:
$UIDS = explode( ',', $JSON_UIDS );
foreach( $UIDS as $UID_get ) {
...
您正在尝试循环“1,2,3”-您需要创建某种类型的列表或数组。可能需要使用
explode()
您现在可以在
$UIDS[0]、$UIDS[1]、$UIDS[2]
访问它们。您正在尝试循环“1,2,3”-您需要创建某种类型的列表或数组。可能需要使用explode()
您现在可以在$UIDS[0]、$UIDS[1]、$UIDS[2]
$UIDS = explode(',', $JSON_UIDS);