1

私は自分のデータベースの証言を表示しようとしていますが、2 日間さまざまなコードの組み合わせを試した後、あきらめて、ここにいる誰かが私よりもよく知っていることを願っています :)

これが私がこれまでに持っているものです:

モデル:

    function getTestimonials() {
    $this->db->select('*');
    $this->db->from('feedback_comments');   
    $c = $this->db->get();
    return $c;
    }

コントローラ:

    $testimonials = $this->feedback_model->getTestimonials();
    $this->outputData['testimonials'] = $testimonials;

そして最後にビュー:

    <?php $i = 1; foreach($testimonials as $testimonial) { ?>
    <?php echo $testimonial->dated; ?>, <?php echo $testimonial->comment; ?>
    <?php } ?>

何らかの理由で、結果が表示されていません。エラーは表示されませんが、BD にはレコードが 1 つしかないため、各行に 2 つのカンマがある 7 行が表示されます。

私が間違っていることについての手がかりはありますか?

前もって感謝します :)

4

3 に答える 3

0

これを見てみたいかもしれません: http://ellislab.com/codeigniter/user-guide/database/results.html

問題は非常に単純です。結果を何にも保存していません。基本的に、変更する必要があります:

return $c;

の中へ:

return $c->result();

上記の変更を行う必要があるのはなぜですか? 基本的に get() メソッドを実行しているときはいつでも、DB クエリへの接続を取得しています。これにより、行数、接続タイプに関する詳細などを確認できます。結果にアクセスしたい場合接続文字列で result() メソッド (または必要に応じて result_array) を呼び出すだけです。

于 2013-10-13T11:48:23.520 に答える
0

モデルメソッドの場合は次のとおりです。

function getTestimonials() {
    return $this->db->get('feedback_comments')->result();
}

ただし、ビューをどのようにロードしているかを示していません。この行:$this->outputData['testimonials'] = $testimonials;は少し非標準に見えます ($this を使用したためですが、動作するはずです)。ビューをロードする基本的な概念は次のとおりです。

$outputData['testimonials'] = $testimonials;
$this->load->view('my_view', $outputData);
于 2013-10-13T12:10:28.337 に答える
0

Model コードをこれに置き換えます。

 function getTestimonials() {
    $this->db->select('*');
    $this->db->from('feedback_comments');   
    $c = $this->db->result();
    return $c;
    }
于 2013-10-13T11:55:24.233 に答える