Codeigniter中的Foreach无法正常工作

时间:2015-12-19 05:11:58

标签: php arrays codeigniter foreach

我的项目的概念是从数据库中获取基于日期的价格。我已成功从数据库中获取数据,但问题是我无法获取相应日期的价格金额,这里我使用的是动态日期我不知道如何获取它。

$day1 = $date->format('l')."\n";
$this->db->select($day1);
$this->db->where('filename',$data['roomname']);
$query = $this->db->get('rooms'); 
$bb = $query->result();
print_r($bb);
foreach($bb as $row)
 $price =  $price + $row->$day1;

错误,

A PHP Error was encountered

Severity: Notice

Message: Undefined property: stdClass::$Tuesday

Filename: controllers/home.php

Line Number: 332

My table structure

希望有人能指出我的解决方案。 感谢。

3 个答案:

答案 0 :(得分:0)

可能是您的$ day是一个包含空格的字符串,因此请根据此更改您的代码并尝试

  $bb = $query->result();
  $day1 = str_replace(' ', '', $day1); 
  foreach($bb as $row)
     $price =  $price + $row->$day1;

或者,

  $bb = $query->result_array();
  $day1 = str_replace(' ', '', $day1); 
  foreach($bb as $row)
     $price =  $price + $row[$day1];

或者作为一行:

  $bb = $query->row();
  $day1 = str_replace(' ', '', $day1);
     $price =  $price + $bb->$day1;

我希望它有效

答案 1 :(得分:0)

请删除" \ n"来自你的代码

改变这一点:

$day1 = $date->format('l')."\n";

$day1 = $date->format('l');

答案 2 :(得分:-1)

CodeIgniter将结果行作为对象返回,而不是数组。

  

result():此函数将查询结果作为数组返回   对象,或失败时的空数组。

您必须使用以下表示法访问字段:

foreach($bb as $row)
    $price =  $price + $row->day1;

如果你真的想要一个数组,你可以使用:

$bb = $query->result_array();

将返回与关联数组相同的信息

然后您可以按以下方式访问它:

foreach($bb as $row)
    $price =  $price + $row[$day1];