私は codeigniter (CI) の初心者であり、ログインしているユーザーのコンテストと総投票数を選択する必要があります。たとえば、ユーザーと競合テーブルには多対多の関係があり、競合アイテムにも同じことが言えます。ユーザーのコンテストと、そのユーザーに関連するすべての項目の投票を選択する必要があります。また、すべてのコンテストの投票を選択し、それぞれの合計投票数を取得する必要があります。結局のところ、すべての結果を1つのビューに表示する必要があります(これが最も複雑な部分です)。たとえば、1つのモデルですべてを操作することはできず、多くの配列をコントローラーに返す方法など。
これが私のコントローラーの例です:
<?php
class User_id extends CI_Controller{
function __construct()
{
parent::__construct();
$this->load->helper(array('form', 'url'));
$this->load->library('session');
}
function index(){
$this->load->view('v_user_id');
}
function view_comp(){
$c_id = $this->input->post('id');
$this->session->set_userdata('c_id',$c_id);
$s_id = $this->session->userdata('c_id');
$this->load->model('comps_model');
$data['rows'] = $this->comps_model->getComps($s_id);
}
}
?>
そして、これが「すべての選択クエリ」を含み、前述の「すべての結果」を返す必要がある私の目的のモデルです:
<?php
class Comps_model extends CI_Model{
function getComps($id){
$this->load->database();
$id = $this->db->query("select competition_id from user_competition where user_id='".$id."'");
if($id->num_rows() > 0){
foreach($id->result() as $id_row){
$comp_name = $this->db->query("select competition_title from competition where competition_id='".$id_row->competition_id."'");
if($comp_name->num_rows() > 0) {
//all the stuff should go here or something like that
}
}
}
}
}
?>
いくつかのコード例に感謝します:)