我尝试请求一组ID,返回带有该ID的每一行,并将每个ID推入一个数组$finalArray
但只有查询的第一个结果会输出,而在第二个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是逃避和剥离)
我想要的是一个包含多行的数组(在我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\" }"
}
}
}
但那是在我从db获得两者或更多结果之后。
print_r($UID_get);
确实打印info
,但后来没有...
那么,为什么我没有从info
获得第二行?我本质上是在重新查询foreach $ arrayItem吗?
答案 0 :(得分:0)
结果......数组中的前导空格必须用以下内容修剪第二项:
trim($UID_get);
感谢GBD
答案 1 :(得分:0)
从mysql资源获取数组后,尝试执行以下函数,方法是将fetched数组作为参数传递。(在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;
}