0

我正在使用 codeIgniter 进行开发,并且我设法简单地将 ID 号码和电话号码发布到名为“offers”的表中,这两个字段都是 INT,但是当我尝试更新与特定 ID 对应的电话号码时,我不断收到以下错误

“字段列表”中的未知列“mysubmit”

UPDATE offersSET phneNum= '078444', mysubmit= '提交表格' WHERE idNum= '12'

文件名:C:\xampp\htdocs\project\system\database\DB_driver.php

我在下面列出了我的控制器、模型和视图

newOffer/控制器

     class newOffer extends CI_Controller {
  function addOffer() {
 //if the form is submitted           
  $this->load->view("check");
 $this->load->model("offer_model");
   if ($this->input->post('mysubmit')) {

       $this->offer_model->entry_insert();
            }

    }
   function updateOffer (){
    $this->load->view("check");
 $this->load->model("offer_model");
 if ($this->input->post('mysubmit')) {
    // $this->offer_model->upddata();
  $this->offer_model->upddata($this->input->post());
   }


  }
 }
 ?>

报价模型

  class offer_model extends CI_Model{
   public function entry_insert(){
     $data = array(
       'idNum' => $this->input->post('idNum'),
        'phneNum' => $this->input->post('phneNum'),

    );

   $this->db->insert('offers',$data);

}
 public function upddata($data) {
             $data=array();

         $idNum = $data['idNum'];
    $data=$this->input->post(); //get all post value to data array

    unset($data['idNum']); // unset unnecessary values 
   $this->db->where('idNum', $idNum)->update('offers' ,$data);
   return true;
}



}


 ?>

视图 // 请输入新报价的详细信息

        <label for="ID Number">ID Number:  <span class="required">*</span></label>
        <input type="text" name="idNum" id="idNum" placeholder="Please enter ID   Number/>
        <label for="phone Number">Phone Number:</label>
       <input type="text" name="phneNum" id="phneNum   " placeholder="Please enter phone Number"/>

         <fieldset class="submit_field">
          <?php echo form_submit('mysubmit', 'Submit Form'); ?>
       </fieldset>

       </div><!-- end of form div -->
    ?>
4

3 回答 3

2

您的问题似乎出在您的模型函数中:

 public function upddata($data) {
         $data=array();

     $idNum = $data['idNum'];
$data=$this->input->post(); //get all post value to data array

unset($data['idNum']); // unset unnecessary values 
$this->db->where('idNum', $idNum)->update('offers' ,$data);
return true;
}

第二行,$data=array(); 从技术上擦除传入变量中的数据并创建一个新的空白数组。所以第三条语句将为 $idNum 返回 null。相反,您可以直接使用 $data 变量来构造 where 子句。

public function upddata($data) {
//do necessary data validation here or in the controller.
 $idNum = $data['idNum'];
//not needed you already have the data in the $data var//$data=$this->input->post();
unset($data['idNum']); // unset unnecessary values 
$this->db->where('idNum', $idNum);
$this->db->update('offers' ,$data);
return true;
}
于 2013-09-24T19:39:31.370 回答
0

提交表单时,提交按钮也是一个输入,并与帖子一起发送。然后您将它发送到更新方法,因此它正在寻找列“mysubmit”(您的提交输入的名称)以更新为您的提交按钮的值。

您需要unset($data['mysubmit'])在将其发送到更新方法之前。

你还需要摆脱$data = array();. 我认为那是出于调试目的。

于 2013-09-24T19:40:03.230 回答
0
public function upddata($data) {

             $idNum = $data['idNum'];

             $offers_data = array("phneNum" => $data['phneNum']);

             unset($data['idNum']); // unset unnecessary values 
             $this->db->where('idNum', $idNum)->update('offers' ,$offers_data );
             return true;
}
于 2013-09-24T19:47:54.377 回答