0

我正在尝试从我的数据库中删除消息行,作为大学项目的社交网站的一部分,但出现错误:严重性:通知消息:未定义的索引:在我的视图中的 id。非常感谢任何帮助!!!!

This is my method in the Model:

function delMessage($id)
  {

    $this->db->where(array('id' => $id));
    $this->db->delete('messages');

  }

This is my method in my Controller:

 function delMessage($id) {

    $this->messages->delMessage($id);

    redirect('message');

   }

And this is the code in my view:

 if(!empty($messages)){
           foreach($messages as $message):
           $delete = $message['id']; 
           var_dump($message); ?>
          <li><?=$message['from']?> says...: "<?=$message['message']?>"(<?=anchor("message/delMessage/$delete", 'delete')?>)</li>      
         <?php endforeach?> 
          <?php }else{ ?>

         <?php echo 'No Messages to View'; }?>   
4

1 回答 1

1

您编写此内容的方式是在不向其传递任何数据的情况下调用视图。如果要在视图中循环遍历数组,则必须从控制器传递数组。

您的控制器需要看起来更像以下内容:

function delMessage($username) {
    $this->load->model('messages_model');
    $data['messages'] = $this->messages->deleteUserMessage($username);
    $this->load->view('message', $data);
}

为了使它起作用,您的模型必须做的不仅仅是删除。它还必须查询数据库并返回数组 $messages。

我可以尝试为您提供更多帮助,但是查看您的代码我无法弄清楚您要做什么。您已经分配了变量 $delete,但您从未使用过它。您在每个循环上转储数组,并且每次都在回显“来自”。在这一点上,这就像埃及象形文字。请提供更多信息。

根据提供的新信息进行更新:

function deleteUserMessage($username) {
    $this->db->where('from', $username);
    $this->db->or_where('to', $username); 
    $query = $this->db->get('messages');
    if ($query->num_rows() > 0){
        $messages = $query->result_array();
        $this->db->where('from', $username);
        $this->db->or_where('to', $username); 
        $this->db->delete('messages');
        return $messages;
    }
}
于 2012-12-24T21:23:27.103 回答