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());
   }


  }
 }
 ?>

offer_model

  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;
}

2 行目 $data=array(); 渡された変数から技術的にデータを消去し、新しい空の配列を作成します。したがって、3 番目のステートメントは $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
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 に答える
0

フォームが送信されると、送信ボタンも入力であり、投稿とともに送信されます。それを更新メソッドに送信すると、列「mysubmit」(送信入力の名前) が検索され、送信ボタンの値に更新されます。

unset($data['mysubmit'])更新メソッドに送信する前に必要です。

も取り除く必要があり$data = array();ます。デバッグ目的でそこにあったと思います。

于 2013-09-24T19:40:03.230 に答える