1

我正在尝试列出数组的索引,但它一直在我脸上抛出错误。

我收到此错误:

遇到 PHP 错误
严重性:通知
消息:未定义索引:发件人

现在了解一些代码详细信息:我的打印行:

<div class="left"><label>Afsender: </label><p><?=$reservation['sender'] . ' (' .     $reservation['email'] . ')'?></p></div></pre>

我的控制器:(使用 phil sturgeon 的 CodeIgniter 模板库)

public function readReservation($id)
{
    $data['reservation'] = $this->reservation_model->getReservation($id);
    $this->template->build('admin/readReservation_view', $data);
}

我的模型:

public function getReservation($id) 
{
    $query = $this->db->where('id', $id)->get('ita_reservations');

    if ($query->num_rows > 0) 
    {
        return $query->result();
    }
    else
        return false;
}

我的 sql:

CREATE TABLE IF NOT EXISTS `ita_reservations` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `sender` varchar(200) NOT NULL,
  `email` varchar(200) NOT NULL,
  `date` varchar(200) NOT NULL,
  `time` varchar(200) NOT NULL,
  `persons` varchar(200) NOT NULL,
  `phone` varchar(200) NOT NULL,
  `message` varchar(1000) NOT NULL,
  `time_received` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `confirmed` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

现在让我感到困惑的是,相同的代码在其他地方也可以工作,但变量名不同。为了增加我的困惑,这是var_dump来自我的印刷品上方的行:

array(1) { [0]=> object(stdClass)#42 (10) { ["id"]=> string(1) "1" ["sender"]=> string(7) "Kenneth" ["电子邮件“]=> 字符串(17)“zungate@gmail.com”[“日期”]=> 字符串(10)“23/05/2013”​​[“时间”]=> 字符串(5)“18:00” ["persons"]=> string(1) "4" ["phone"]=> string(8) "30243681" ["message"]=> string(12) "Ja nemlig ja" ["time_received"]= > 字符串(19)“0000-00-00 00:00:00”[“确认”]=> 字符串(1)“0”}}

发件人索引显然在那里,并且数组显然已正确加载。(所有索引都会抛出错误,而不仅仅是发件人)。

发生了什么事,我错过了什么?是的,我知道我应该检查issetor empty,但它存在,并且如果索引不存在则无法加载页面,因此检查有点没有意义。

4

1 回答 1

1

您在数组中有一个对象(请参阅您的var_dump),因此要获取预订发件人,您必须使用以下内容:

$reservation[0]->sender

或者更好的是,而不是从您的函数返回整个结果集,您应该只返回一行(假设 id 是唯一的,您的查询将只返回一行):

public function getReservation($id) 
{
  $query = $this->db->where('id', $id)->get('ita_reservations');

  if ($query->num_rows > 0) 
  {
    return $query->row();
  }
  else
    return false;
}

有了这个,你可以使用:

$reservation->sender
于 2013-05-23T09:09:36.353 回答