Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.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输出中的未定义变量_Php_Mysql_Arrays_Json - Fatal编程技术网

php的json输出中的未定义变量

php的json输出中的未定义变量,php,mysql,arrays,json,Php,Mysql,Arrays,Json,我只是不明白我的代码有什么问题 在浏览器中,它显示未定义的变量 但是我以前在一个while循环中声明过 在浏览器中显示: 注意:未定义的变量:第371行C:\xampp\htdocs\JSONdata.php中的dhkBlood* 我编写的PHP代码如下所示: if($retrieve1){ while($row = mysql_fetch_assoc($retrieve1)) { $dhkBlood[] = array("ID" => $row['P

我只是不明白我的代码有什么问题

在浏览器中,它显示未定义的变量

但是我以前在一个while循环中声明过

在浏览器中显示: 注意:未定义的变量:第371行C:\xampp\htdocs\JSONdata.php中的dhkBlood*

我编写的PHP代码如下所示:

if($retrieve1){
    while($row = mysql_fetch_assoc($retrieve1))
    {   
        $dhkBlood[] = array("ID" => $row['PID'], "PlaceName" => $row['PName'], "Address" => $row['Address'], "DeploymentName"  => $row['DName'], "Latitude" => $row['Latitude'], "Longitude" => $row['Longitude']);
    }
}
代码:

这里的$retrieve1变量是我用来分配mysql查询的变量,通常从我的数据库中检索信息

添加

   $dhkBlood = array();
以前

 if($retrieve1){
  while($row = mysql_fetch_assoc($retrieve1))
   {   
    $dhkBlood[] = array("ID" => $row['PID'], "PlaceName" => $row['PName'], "Address" => $row['Address'], "DeploymentName"  => $row['DName'], "Latitude" => $row['Latitude'], "Longitude" => $row['Longitude']);
   }
  }

在使用前定义数组,并如上所述在数组中赋值,

这就是为什么初始化变量总是一个好的做法(如果您没有定义$dhkBlood并且($retrieve1为false或者您的循环没有行)){您将得到通知};在
if
之前初始化它,如果您正在使用它,而不管您的
if
是否每行多生成6个通知,以消除1个通知?这些数组索引应该在引号中,否则它们也会生成通知
 if($retrieve1){
  while($row = mysql_fetch_assoc($retrieve1))
   {   
    $dhkBlood[] = array("ID" => $row['PID'], "PlaceName" => $row['PName'], "Address" => $row['Address'], "DeploymentName"  => $row['DName'], "Latitude" => $row['Latitude'], "Longitude" => $row['Longitude']);
   }
  }
$dhkBlood = array(); //defined array first 
if($retrieve1){

    while($row = mysql_fetch_assoc($retrieve1)) {

        $dhkBlood[ID] = $row['PID'];
        $dhkBlood[PlaceName] = $row['PName'];
        $dhkBlood[Address] = $row['Address'];
        $dhkBlood[DeploymentName] = $row['DName'];
        $dhkBlood[Latitude] = $row['Latitude'];
        $dhkBlood[Longitude] = $row['Longitude'];

    }

}