【发布时间】:2017-07-21 13:53:55
【问题描述】:
我是 code-igniter 的新手,在我的 database 中更新和删除 rows 时遇到未知问题。我的控制器代码是:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Nhome extends CI_Controller {
public function __construct()
{
parent::__construct();
}
public function index()
{
$this->load->Model('N_model');
$data['r'] = $this->N_model->getdata();
$this->load->view('Homeview',$data);
}
public function edit()
{
$id = $this->input->get('id');
$this->load->Model('N_model');
$data['s'] = $this->N_model->editdata();
$this->load->view('Neditview',$data);
}
public function loadEdit()
{
$id = $this->input->get('id');
$this->load->view('Neditview');
}
public function insertdata()
{
$eID = isset($_POST['Id'])?$_POST['Id']:'';
$arr['Name'] = $_POST['Name'];
$arr['Gender'] = $_POST['Gender'];
$arr['Email'] = $_POST['Email'];
$this->load->Model('N_model');
$res = $this->N_model->updatedata($arr , $eID);
if($res){
header('location:'.base_url()."index.php/Nhome/".$this->index());
}
}
public function delete(){
$this->load->Model('N_model');
$id = $this->input->get('Id');
$this->N_model->deletedata($id);
$this->index();
}
}
我的模型代码是:
<?php
class N_Model extends CI_Model{
public $Id;
public $Name;
public $Gender;
public $Email;
public function __construct()
{
parent::__construct();
}
public function getdata()
{
$va = $this->db->get('newprac');
$res = $va->result();
return $res;
}
public function editdata($id)
{
$vr = $this->db->where('Id',$id);
return $vr;
}
public function updatedata($data , $id){
$this->db->where('newprac.Id',$id);
$res = $this->db->update('newprac', $data);
return $res;
}
public function deletedata($id)
{
$this->db->where('newprac.id',$id);
$this->db->delete('newprac');
if($this->db->affected_rows()>0)
{
return true;
}
else { return false; }
}
}
【问题讨论】:
-
那么,您面临什么困难?有什么错误吗?如果是,请也提供该错误。
-
不,实际上没有错误..我认为这是一些逻辑错误,因为在编辑行时,会出现编辑视图,我也可以输入信息,按下提交按钮后,它会重定向到主页..但没有数据被更新甚至删除。你能告诉我为什么会这样吗?
-
如果您从模型中传递 true 或 false,那么为什么不从控制器检查它是否为 true,如果为 true,则调用视图页面或传递相同的页面。你也可以在你的模型中死掉并回显 $this->db->last_query();看看你生成了什么查询并在你的 phpmyadmin 中运行这个查询,然后你就会明白会发生什么。
-
请你死在你的删除控制器中并回显 $this->input->get('Id');看看你得到 id 空白会发生什么?
标签: php database codeigniter crud