【问题标题】:Undefined variable in json output of phpphp的json输出中未定义的变量
【发布时间】:2014-09-10 06:13:05
【问题描述】:

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

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

但我之前在while循环中声明过!

在浏览器中显示: 注意:未定义变量:C:\xampp\htdocs\JSONdata.php 中第 371 行的 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']);
    }
}

代码:

370. $result = array();
371. $result["dhakaBlood"]=$dhkBlood;
372. $finalResult = array();
373. $finalResult['data']=$result;
374. echo json_encode($finalResult);

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

【问题讨论】:

  • 这就是为什么初始化变量总是一个好习惯
  • (如果您没有定义 $dhkBlood 并且($retrieve1 为 false 或您的循环没有行)){您会收到通知};如果你在路上使用它,不管你的if如何,在你的if之前初始化它

标签: php mysql arrays json


【解决方案1】:

添加

   $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']);
   }
  }

【讨论】:

    【解决方案2】:
    $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'];
    
        }
    
    }
    

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

    【讨论】:

    • 每行再生成 6 个通知以摆脱 1 个通知?这些数组索引应该用引号引起来,否则它们也会生成通知
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-24
    • 2016-04-07
    • 2015-11-17
    • 2012-03-04
    • 2017-07-25
    • 2017-11-18
    相关资源
    最近更新 更多