Как я могу получить только один вопрос и связанный с ним ответ в виде codeigniter? - PullRequest
0 голосов
/ 06 июля 2011

мой контроллер

$data['qna'] = $this->Ivote_model->get_qa();

просмотр

foreach($qna as $k=>$v){
    echo $v['question']. '<br/>';
        echo '-' .$v['answer'] . '<br/>';

модель

function get_qa(){
    $data = array();
    $this->db->select('*');
    $this->db->where('v_questions.id',1);
    $this->db->from('v_answers');
    $this->db->join('v_questions','v_questions.id = v_answers.question_id');

    $q = $this->db->get();

    if($q->num_rows > 0){
        foreach($q->result_array() as $row){
            $data[] = $row;
        }
    }
    $q->free_result();
    return $data;
}

моя html-страница показывает

What is your favorite food?
-Sushi
What is your favorite food?
-Burgers
What is your favorite food?
-kodo

что яхочу это

What is your favorite food?
    -Sushi
    -Burgers
    -koddo

пожалуйста, помогите мне, как мне этого добиться?

1 Ответ

1 голос
/ 06 июля 2011

Я бы сделал пару вещей:

function get_qa(){
    /* ... */

    if($q->num_rows > 0){
        foreach($q->result_array() as $row){
            // create an associative array of question => answer.
            // that ensures 1-1 mapping.
            if(!isset($data[$row['question']])) $data[$row['question']] = array();
            $data[$row['question']][] = $row['answer'];
        }
    }
    /* ... */
}

Тогда в представлении:

 foreach($qna as $k=>$v){
    echo $k. '<br/>';
    foreach( $v as $ans ){ 
        echo '-' .$ans . '<br/>';
    }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...