只有最后一排是用笨JSON返回(Only last row is returned in json

2019-09-29 11:36发布

我试图返回使用笨,我将在后面使用JSON在JavaScript JSON数据。 现在的问题是,它只返回从数据库表中的最后一行,并从一排JSON格式。 这是我在控制器代码

public function v1 () {
    $this->load->model('model_jokes');

    $jokes = $this->model_jokes->readJokes();
    foreach ($jokes as $joke) {
        $arr = array(
                array(
                    'title' => $joke->title,
                    'description' => $joke->joke
                )
            );
    }
    echo json_encode($arr);
}

我怎样才能让这个是我从数据库中检索的所有数据在JSON是回来了?

Answer 1:

尝试

$arr = array();
foreach ($jokes as $joke) {
  $arr[] = array (
    'title' => $joke->title,
    'description' => $joke->joke
  );
}

在你的代码片段要覆盖$arr在你的循环每次迭代。

在这个岗位上面的代码片段将追加所有条目的数组$arr稍后可编码为JSON。



Answer 2:

你分配$arr到新阵列中的每个迭代,而不是增加值到它。

$arr = array();
foreach ($jokes as $joke) {
    $arr[] =  array(
                'title' => $joke->title,
                'description' => $joke->joke
            );
}


Answer 3:

控制器是不正确的?

//CONTROLLER
    public function v1() {

    $this->load->helper('file');

    $data = $this->load->model('model_jokes');

    $this->output
        ->set_content_type('application/json')
        ->set_output(json_encode($data));
}

并确保你的模型创建的阵列,而不是控制:

public function model_jokes()
{
    $jokes = $this->_load_data();
    $list = array();

        foreach ($jokes as $joke) {
            $list['joke'] = array(
                'yourdata1' => $joke->yourvariable,
                'yourdata2' => $joke->yourvariable
            );
        }
        return $list;
}

我使用的模型内的私有函数来获取所有数据。

希望能帮助到你!



Answer 4:

我一直在做这样..

 $arr = array();
 $key = 0;
 foreach ($jokes as $joke) 
 {
   $arr[$key]['title'] = $joke->title;
   $arr[$key]['description'] = $joke->joke;
   $key++;
 }


文章来源: Only last row is returned in json using codeigniter