0

我尝试请求一个 ID 数组,返回具有该 ID 的每一行,并将每个行推入一个数组$finalArray

但只会输出 Query 的第一个结果,而在第二个结果中foreach,它会跳过while循环。

我有这个在另一个脚本中工作,所以我不明白哪里出错了。

$arrayItems是一个数组,包含:"home, info"

 $finalArray = array(); 
 foreach ($arrayItems as $UID_get)
 {
     $Query =   "SELECT * 
                FROM items
                WHERE (uid = '" . cleanQuery($UID_get) . "' )
                ORDER BY uid";

  if($Result = $mysqli->query($Query))
  {
        print_r($UID_get);
        echo "<BR><-><BR>";

      while ($Row = $Result->fetch_assoc())
      {
        array_push($finalArray , $Row);
        print_r($finalArray );
        echo "<BR><><BR>";
      }
   } 
   else
   {
    echo '{ "returned" : "FAIL" }'; //. mysqli_connect_errno() . ' ' . mysqli_connect_error() . "<BR>";
   }
 }

(cleanQuery 是转义和stripslashes)

我想要得到的是一个多行数组(在我对其进行 json_encoded 之后,例如:

{ "finalArray" : 
    { "home": 
        { "id":"1",
          "created":"0000-00-00 00:00:00",
          "css": "{ \"background-color\" : \"red\" }"
        } 
    }, 
    { "info": 
        { "id":"2",
          "created":"0000-00-00 00:00:00",
          "css":"{ \"background-color\" : \"blue\" }"
        } 
    } 
}

但那是在我从数据库中获得两者或更多结果之后。

print_r($UID_get);确实打印了info,但是什么也没有。

那么,为什么我没有得到第二行info呢?我本质上是在重新查询 foreach $arrayItem 对吗?

4

2 回答 2

0

结果...数组中的前导空格,因为第二项必须修剪:

trim($UID_get);

谢谢 GBD

于 2012-11-12T12:04:28.940 回答
0

从mysql资源获取数组后,尝试执行以下函数,通过将获取的数组作为参数传递。(在你的while循环内)

    function array_remove_indexes(&$arr)
    {
        $new_arr = array();
        foreach($arr as $name => $val)
        {
            if(!is_int($name))$new_arr[$name]=$val;
        }
        $arr = $new_arr;
    }
于 2012-11-12T12:18:27.437 回答