如何格式化和组织一个连续数组的查询结果?

时间:2011-06-19 19:32:53

标签: php sql codeigniter

我的代码:

public function get_all_posts(){

    $this->load->database();
    $sql="SELECT * FROM posts";
    $query=$this->db->query($sql);

    foreach($query->result() as $item)
    {
        foreach($item as $record)
        {
            echo $record;
        }

示例输出:

36sss37Does it work?38394041aaaaaaa42hey43hey44qqq45hey46malibu

预期产出:

36 sss
37 Does it work?
38
39
...
42 hey
43 hey

所以,这解释了一切,我只是想组织并可能格式化查询的输出。此外,是否可以处理个人记录?比如,可以在这里为每个帖子添加评论模块吗?

3 个答案:

答案 0 :(得分:2)

我猜方法get_all_posts()是模型的一部分。在模型中使用结果的格式化并不是一个好习惯。您必须在视图中格式化结果。

<强>模型

public function get_all_posts(){
    $this->load->database();
    $sql="SELECT * FROM posts";
    $query=$this->db->query($sql);
    return $query->result();
}

<强>控制器

$this->load->model('Your_model', 'post');
$data['posts'] = $this->post->get_all_posts();
$this->load->view('your_view', $data);

查看

<?php foreach($posts as $post): ?>
    <h2><?php echo $post->title; ?></h2>
    <p><?php echo $post->content; ?></p>
<?php endforeach; ?>

您可以从此处获取更多信息:http://codeigniter.com/user_guide/general/models.html

答案 1 :(得分:0)

$iter = 0;    
foreach($item as $record){
         if($iter == 1){
             echo "<br />";
             $iter = 0;
         }
            echo $record;
         $iter++;
}

答案 2 :(得分:0)

尝试使用$item as $key=>$value