0

こんにちは、私は小さな初心者プロジェクトに取り組んでいます。現在、HTML テーブルの Web ページに 2 つの別々のテーブル データを表示する作業を行っていますが、データに問題があります。資格情報テーブルと回答テーブルがあり、ユーザーは最初に資格情報を入力してからボタンを押して、資格情報をテーブルに保存し、ユーザーを質問ページにリダイレクトします。テーブルに保存されます。このデータはすべて Web ページに表示されますが、データが表示されると、詳細を入力するユーザーごとに回答が重複します。誰かが私がどこで間違っているのか教えてもらえますか? tnx までご連絡ください。

見る

 <table border="1">


  <tr>
     <th>Name</th>
     <th>Second Name</th>
     <th>Phone</th>
     <th>Email</th>
     <th>Answer</th>
     <th>Comment</th>
 </tr>
  <?php foreach ($query as $row): ?> 
 <tr>

     <td><?php echo $row->name; ?></td>
     <td><?php echo $row->second_name; ?></td>
     <td><?php echo $row->phone; ?></td>
     <td><?php echo $row->email; ?></td>
      <td> <?php echo $row->answerA;?>
      <?php echo $row->answerB;?>
      <?php echo $row->answerC;?></td>
     <td><?php echo $row->comment;?><br></td>

 </tr>

  <?php endforeach; ?>

 </table>

コントローラ

function getall(){

    $this->load->model('result_model');
    $data['query'] = $this->result_model->result_getall();
    $this->load->view('result_view', $data);

    }

モデル

function result_getall(){
  return $this->db->select('tblanswers.*,credentials.*')
                 ->from('tblanswers, credentials')
                 ->get()
                 ->result_object();

}
4

1 に答える 1

4

列に参加せずに、tblanswers、資格情報からすべてを選択しています。最終的には、各行を他のテーブルのすべての行とペアにするクロス結合になります。tblanswersのどの行が資格情報のどの行に関連するかを指定する必要があります。たとえば、資格情報にid列がある場合は、tblanswersにcredentials_id列を作成し、それらが一致するようにデータを入力する必要があります。getall()は次のようになります。

function result_getall(){
  return $this->db->select('tblanswers.*,credentials.*')
                 ->from('tblanswers')
                 ->join('credentials', 'tblanswers.credentials_id = credentials.id')
                 ->get()
                 ->result_object();

}

言う行

join('credentials', 'tblanswers.credentials_id = credentials.id')

2つのテーブルの関係を指定します。

ジョーンズ氏が自分の資格情報を入力し、それらがID 72の資格情報テーブルに一列に保存されているとします。次に、彼は自分の回答を入力します。それらを保存するときは、回答テーブルのcredentials_id列に「72」と入力していることを確認する必要があります。これは、これらの回答がジョーンズ氏のものであることを意味します。上記で指定した結合を使用してクエリを実行すると、ジョーンズ氏の回答に対してジョーンズ氏の資格情報が返されます。

于 2013-03-05T11:16:27.977 に答える