0

データベースにクエリを挿入した後、ビュー ページにデータを表示する方法を教えてください。

ビューページ (member_view.php):

<form action="<?php member_controller/insert_info; ?>" method="post">
<input type="text" name="fname">  
<input type="text" name="lname">
<input type="submit" name="submit">
</form>  

<?php 
if($res){
    foreach($res as $data){
    echo $data['fname'];  
    echo $data['lname'];
    }
}
?>

コントローラーページ (member_controller.php):

<?php  
class Member_Controller extends CI_Controller {

public function insert_info(){  

$data = array('fname' => $this->input->post('fname'),  
'lname' => $this->input->post('lname'),           
);  

$this->load->model('member_model');  
$this->member_model->member_posting($data);  
$data['username'] = $session_data['username'];
$retrieved_info['res'] = $this->member_model->member_posting($data);
$this->load->view('member_view',$data, $retrieved_info)
}

}

モデルページ(member_model):

<?php
class Member_Model extends CI_Model{  

public function member_posting($data=array()){

extract($data);

$query = "INSERT INTO member_table (fname, lname)values ('$fname', '$lname')";
$result = $this->db->conn_id->prepare($query);
$result->execute();

if($result){
$query = "SELECT * FROM member_table WHERE fname = '$fname' AND lname='$lname'";
$result = $this->db->conn_id->prepare($query);
$result->execute();   
return $res = $result->fetchAll(PDO::FETCH_ASSOC);
}

}

}  

そして、ここにパターンがあります:

ビュー(フォームを送信)---->コントローラー(変数を取得してモデルに送信)--->
モデル(データベースに挿入して選択クエリを実行)--->コントローラー(モデルから選択クエリの結果を取得)--- >view(結果を表示)

私を助けてください、私はcodeigniterの初心者です。皆さんから学べることを願っています。

4

2 に答える 2

1

これはあなたが従う必要がある方法です........

ビューファイル:member_view.php

<form action="<?php echo ROOT_FOLDER ?>/member_controller/insert_info" method="post">
  <input type="text" name="fname">  
  <input type="text" name="lname">
  <input type="submit" name="submit">
</form>

コントローラーファイル: member_controller.php

<?php  
     class Member_Controller extends CI_Controller {

        public function insert_info()

         {  

           $data = array(
                      'fname' => $this->input->post('fname'),  
                      'lname' => $this->input->post('lname'),           
                   );  

          $this->load->model('member_model');  
          $this->member_model1->member_posting($data);
          $retrieved_info = array();
          $retrieved_info['res'] = $this->member_model2->member_posting($data);
          $this->load->view('member_view',$data, $retrieved_info)
       }

   }

モデルファイル: member_model1.php

      class Member_Model extends CI_Model{  

        public function member_posting_inserting($data){

          $this->insert_helper('member_table',$data); 

         }

        public function member_posting_retrieving($data){

           $query = "SELECT * FROM member_table WHERE fname = '$data['fname']' AND lname='$data['lname']'";
           $res=$this->db->query($query);

            if($res->num_rows()>0){
             return $res->result("array");
             }
           return array();
         }  
       } 

ヘルパー関数の挿入.......

   public function insert_helper($table_name, $data_array){
    $this->db->insert($table_name,$data_array);
    return $this->db->insert_id();      
}
于 2012-12-18T15:48:56.470 に答える
0

これ

$this->load->view('member_view',$data, $retrieved_info)

あなたの場合、うまくいきません。ここでビューについて読んでください: http://ellislab.com/codeigniter/user-guide/general/views.html

2 番目のパラメーターはデータ配列です。3 番目のパラメーターは TRUE または FALSE で、ビューをレンダリングする必要があるか、文字列として返す必要があるかを決定します。

これでうまくいくはずです:

$this->load->view('member_view', $retrieved_info);

編集:

member_posting() が何も返さないことに気付きました。$res を返す必要があります。

于 2012-12-18T15:36:29.893 に答える