PHP:注意:未定义的属性:stdClass ::

时间:2016-07-10 08:47:57

标签: php arrays

我从名为json的表中提取properties数据。列名是attr,它有大小,卧室和道具类型。

  $q= mysqli_query($connect,"SELECT * FROM properties");
    $savemyval = array();
    while($row= mysqli_fetch_assoc($q)){
        $data = json_decode($row['attr']);
          //var_dump($data);
          if($proptpe == $data->proptype){
                $savemyval[] = $row['id'];

            }
  }

如果i var_dump这是我得到的

,则查询上面的数据
object(stdClass)[3]
  public 'bedrooms' => string '5' (length=1)
  public 'proptype' => string 'residential' (length=11)
object(stdClass)[4]
  public 'bedrooms' => string '4' (length=1)
  public 'proptype' => string 'commercial' (length=10)
object(stdClass)[3]
  public 'size' => string '16000' (length=5)
  public 'prop-type' => string 'commercial' (length=10)

在var_dump中我得到了正确的数据,但是当我尝试获得proprtype时,如果它超过1则会给我错误

  

PHP:注意:未定义的属性:stdClass ::

如果我使用isset然后没有错误但仍打印一个结果,而转储给了我超过1个结果

1 个答案:

答案 0 :(得分:0)

因为在你的数组中你没有第二个索引的proptype

试试这个

if(isset( $data['proptype']) && $proptpe == $data->proptype){
       $savemyval[] = $row['id'];

}