Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.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/4/algorithm/10.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 json foreach_Php_Mysql_Json_Foreach - Fatal编程技术网

仅返回最后一条记录的PHP json foreach

仅返回最后一条记录的PHP json foreach,php,mysql,json,foreach,Php,Mysql,Json,Foreach,Helo,我的json有问题,我在foreach中有foreach,在foreach中有foreach。。。别问为什么 我的问题是foreachforeach($result2作为$rowx)只返回最后一条记录。查询ok正常,它从数据库返回2个字段,但只有最后一个字段是echo'ed 请帮忙 if(!$location){ echo '{"locations":['; $query = $db->prepare("SELECT * FROM locations");

Helo,我的json有问题,我在foreach中有foreach,在foreach中有foreach。。。别问为什么

我的问题是foreach
foreach($result2作为$rowx)
只返回最后一条记录。查询ok正常,它从数据库返回2个字段,但只有最后一个字段是echo'ed

请帮忙

 if(!$location){
    echo '{"locations":[';
    $query = $db->prepare("SELECT * FROM locations"); 
    $query->execute();
    $result = $query -> fetchAll();
    $num_rows = count($result);
           for ($x = 1; $x < $num_rows; $x++) {
    foreach( $result as $row ) { 
    $qer = "SELECT DISTINCT t.id_temp,f.id_fridge,l.id_location,t.id_sensor,f.denumire AS 'fridge_name',l.name AS 'location_name',l.address AS 'location_address',t.date,t.time,t.temp FROM fridges AS f,locations AS l,temperature AS t WHERE f.fk_location=l.id_location AND f.fk_id_sensor=t.id_sensor AND l.id_location='1' AND t.date='07/05/2015' ORDER BY t.id_temp DESC LIMIT 0,2";

    $query2 = $db->prepare($qer); 
    $query2->execute();
    $result2 = $query2 -> fetchAll();



    echo '{"location_name":"'.$row[1].'","nr_fridges":'.$row[2].',"fridge":';
    foreach( $result2 as $rowx ) { 

    }
    echo '{
    '.$rowx['fridge_name'].'

    }'; 

    echo '}';

    }
        echo "]}";
    exit; 
    }
    }
if(!$location){
回音“{”位置“:[”;
$query=$db->prepare(“从位置选择*);
$query->execute();
$result=$query->fetchAll();
$num_rows=计数($result);
对于($x=1;$x<$num_行;$x++){
foreach($结果为$行){
$qer="选择不同的t.id\u温度、f.id\u冰箱、l.id\u位置、t.id\u传感器、f.denumire作为“冰箱名称”,l.name作为“位置名称”,l.address作为“位置地址”,t.date,t.time,冰箱的t.temp作为f,位置作为l,温度作为t,其中f.fk\u位置=l.id\u位置,f.fk\u id\u传感器=t.id\u传感器和l.id\u位置=1'和t.date='2015年5月7日'p描述限值0,2”;
$query2=$db->prepare($qer);
$query2->execute();
$result2=$query2->fetchAll();
回显“{”location_name:“.”.$row[1]。”,“nr_冰箱”:.$row[2]。,“冰箱”:;
foreach($result2作为$rowx){
}
回声'{
“.$rowx[‘冰箱名称’]”
}'; 
回声'}';
}
回声“]}”;
出口
}
}

您有
echo
es在循环之外

foreach( $result2 as $rowx ) { 
    echo '{
        '.$rowx['fridge_name'].'
    }'; 

    echo '}';
}

echo "]}";

您的问题可能是因为您在循环之后而不是在循环内部使用了
$rowx['fridge\u name']

foreach( $result2 as $rowx ) { 

}
echo '{
'.$rowx['fridge_name'].'

}'; 
应该是:

foreach( $result2 as $rowx ) { 
  echo '{
  '.$rowx['fridge_name'].'
  }'; 
}
还请注意,现在您没有构建有效的json,因为对象需要一个键-值对,其中字符串值以双引号引用

但是,无论如何,您都不应该手动构建json,相反,您应该构建所需表单的数组,并在最后执行以下操作:

echo json_encode($your_array);
您的
echo
foreach
循环之外

试试这个

foreach( $result2 as $rowx ) { 
    echo '{
    '.$rowx['fridge_name'].'
    }';
}

检查json_encode函数,它将使调试变得非常容易,因为这样,它几乎不可读空foreach(最内部的一个)的目的是什么?
foreach( $result2 as $rowx ) { 
    echo '{
    '.$rowx['fridge_name'].'
    }';
}