我有for loop
。
$TOTAL_GOALS = 5;
for($i= 1; $i<=$TOTAL_GOALS; $i++) {
$EACH_POST_QUERY = mysql_query("SELECT item_id FROM likes WHERE item_id='$i'");
$EACH_POST_TOTAL_LIKES = mysql_num_rows($EACH_POST_QUERY);
$EACH_POST_RESULT = array();
$EACH_POST_RESULT[$i] = $EACH_POST_TOTAL_LIKES;
}
在循环中,我动态地触发查询并将结果提取到名为$EACH_POST_TOTAL_LIKES
的变量中。
我想基于此创建一个关联数组。所以,我创建了一个名为$EACH_POST_RESULT = array();
的数组,并将值推入其中。
我得到的输出是最后一个元素 - 例如:
3:16
我的预期输出是 -
1:12
2:14
3:16
我使用此结果将结果发送给JS -
$SERVER_DATA = array("TG"=>$TOTAL_GOALS, "EACH_POST_LIKES"=> $EACH_POST_RESULT);
echo json_encode($SERVER_DATA);
控制台仅向我显示最后一个条目。为什么数组会覆盖值并存储最后一个?
缺少什么?
答案 0 :(得分:2)
您每次在循环中创建if ($resp->is_valid) {
if(isset($_POST['submit']))
{
$name=$_POST['namename'];
$job=$_POST['job'];
$message=$_POST['message'];
$insert=mysql_query("insert into commenttable(name,job,message)values('$name','$job','$message')")or die(mysql_error());
echo "You posted a comment";
header("Location: mylink");
。我建议你使用array
在单个查询中实现这个,如果你想获得所有参数一次。
试试这个:
MySQL Between Clause
答案 1 :(得分:1)
您需要在循环之前移动此行:
$EACH_POST_RESULT = array();
否则每次都会用空数组替换它!