Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中作为SQL WHERE参数的JSON数组_Php_Sql_Json - Fatal编程技术网

PHP中作为SQL WHERE参数的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_

我从前面的查询中得到了这个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);