我试图从我的数据库中删除消息行作为一个大学项目的社交网站的一部分,但我得到一个错误:严重性:通知消息:未定义的索引: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'; }?>
您编写的方式是调用视图而不向其传递任何数据。如果你要在视图中循环数组,你必须从控制器传递数组。
你的控制器需要看起来像下面这样:
function delMessage($username) {
$this->load->model('messages_model');
$data['messages'] = $this->messages->deleteUserMessage($username);
$this->load->view('message', $data);
}
为了使其工作,您的模型必须做的不仅仅是删除。它还必须查询数据库并返回数组$messages。
我可以试着帮助你,但是看看你的代码,我不知道你想做什么。您已经分配了变量$delete,但从未使用过它。你在每个循环中转储数组,并且每次都回显'from'。在这一点上,就像埃及的象形文字。请提供更多信息。
根据提供的新信息更新:
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;
}
}