4

こんにちは、私は codeIgniter を使用しており、ID 番号と電話番号を「offers」という名前のテーブルに単純に投稿することができました。両方のフィールドは INT ですが、特定の ID に対応する電話番号を更新しようとすると、データベース。以下にコントローラー、モデル、ビューをリストしました

newOffer コントローラー

   <?php 
    if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  //insert data into db using offer_model model
  // other option update submit 
  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("check2");
           $this->load->model("offer_model");
           if ($this->input->post('mysubmit')) {
                $this->offer_model->upddata();
            }
         }
    }
  ?>

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) {
    $this->db->where('idNum', $idNum);
    $this->db->update('data' ,$data);
    //extract($data); 
  //$data['OfferName']
  //$this->db->where('OfferName' ,  $data['OfferName']); 
    //$this->db->update($Offers, array('OfferName' => $OfferName)); 
   return true;
    }
}
 ?>

値を更新するビュー

<?form _open(base_url()."index.php/newOffer/updateOffer")?>
<div class="form">
 // <?php echo form_open('newOffer/addOffer'); ?>
<legend>Please enter details for your new offer</legend>
<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

4 に答える 4

1

ここではモデルにデータを渡していません

$this->offer_model->upddata();

次のようなものを追加する必要があります

$this->offer_model->upddata($this->input->post());

また、モデルコード$idNumは未定義であり、それも提供する必要があります。

例えば:

public function upddata($data) {
  $idNum = $data['idNum'];
  unset($data['idNum']);
  $this->db->where('idNum', $idNum);
  $this->db->update('offers' ,$data);
  return true;
}
//etc
于 2013-09-24T15:01:40.513 に答える
0

データを挿入または更新しているのと同じテーブルからフェッチしていることを確認してください。

public function upload($id_akun, $data)
    {
        $table = "foto";

        $this->db->where("id_akun", $data['id_akun']);
        $count = $this->db->count_all_results($table);


        if ($count < 1) {
            $this->db->insert($table, $data);
        } else {
            $this->db->where('id_akun', $data['id_akun']);
            $this->db->update($table, $data);
        }
    }

幸運を :)

于 2016-10-07T05:35:32.963 に答える
-1

あなたのモデルで次のようなことをします

public function upddata() {
    $data=array();
    $data=$this->input->post(); //get all post value to data array
    $idNum=$data['idNum'];
    unset($data['idNum']); // unset unnecessary values 
    $this->db->where('idNum', $idNum)->update('offers' ,$data);
    return true;
} 

これが手順です。100 個の入力フィールドがある場合、すべての値を配列に追加することはできません。問題が発生した場合はお知らせください。

アップデート

変化する

<?php echo form_open('newOffer/addOffer'); ?>

<?php echo form_open('newOffer/updateOffer'); ?>

in 値を更新するビュー

于 2013-09-24T15:13:59.207 に答える