开发者

Codeigniter result array return only one row

Am trying to encode an array to json for use with jquery. This is the function from my model

function get_latest_pheeds() {
        $this->load->helper('date');
         $time = time();
         $q = $this->db->select("user_id,pheed_id,pheed,datetime,COUNT(pheed_comments.comment_id) as comments")
                        ->from('pheeds')
                        ->join('pheed_comments','pheed_comments.P_id=pheeds.pheed_id','left')
                        ->group_by('pheed_id')
                        ->order_by('datetime','desc')
                        ->limit(30);
        $rows = $q->get();
            foreach($rows->result_array() as $row) {
                $data['user_id'] = $row['user_id'];
                $data['pheed_id'] = $row['pheed_id'];
                $data['pheed'] = $row['pheed'];
                $data['comments'] = $row['comments'];
                $data['datetime'] = timespan($row['datetime'],$time);
            }
            return $data;
     }

And this i开发者_StackOverflows from my controller

function latest_pheeds() {
            if($this->isLogged() == true) {
            $this->load->model('pheed_model');
            $data = $this->pheed_model->get_latest_pheeds();

                echo json_encode($data);

            return false;
        }
    }

It returns only 1 row from the database when I run the code in the browser. Please help me out


You are overwriting data in every iteration !!

Use something like

    $data[] = array(
    'user_id' => $row['user_id'];
    'pheed_id' => $row['pheed_id']; 
    'pheed' => $row['pheed'];
    'comments' => $row['comments'];
    'datetime' => timespan($row['datetime'],$time); 
    ) ;


This is good but your syntax should be 'user_id' => $row['user_id'], for each element of the array

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜