Php 使用codeigniter在json中只返回最后一行

Php 使用codeigniter在json中只返回最后一行,php,json,codeigniter,Php,Json,Codeigniter,我尝试使用codeigniter返回json数据,稍后我将在javascript中使用该json。现在的问题是,它只返回数据库表中的最后一行,并从这一行生成json格式。这是我在控制器中的代码 public function v1 () { $this->load->model('model_jokes'); $jokes = $this->model_jokes->readJokes(); foreach ($jokes as $joke) {

我尝试使用codeigniter返回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格式返回?

试试看

$arr = array();
foreach ($jokes as $joke) {
  $arr[] = array (
    'title' => $joke->title,
    'description' => $joke->joke
  );
}
在代码段中,循环中的每个迭代都会覆盖$arr

本文中的上述代码片段将把所有条目附加到数组$arr中,稍后您可以将其编码为json。

试试看

$arr = array();
foreach ($jokes as $joke) {
  $arr[] = array (
    'title' => $joke->title,
    'description' => $joke->joke
  );
}
在代码段中,循环中的每个迭代都会覆盖$arr

本文中的上述代码片段将把所有条目附加到数组$arr中,您可以稍后将其编码为json。

您在每次迭代中将$arr分配给一个新数组,而不是向其添加值

$arr = array();
foreach ($jokes as $joke) {
    $arr[] =  array(
                'title' => $joke->title,
                'description' => $joke->joke
            );
}
您在每次迭代中将$arr分配给一个新数组,而不是向其添加值

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

我总是这样做

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

我总是这样做

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

你的控制器不对

//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;
}
我在模型中使用了一个私有函数来获取所有数据


希望有帮助

您的控制器不正确

//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;
}
我在模型中使用了一个私有函数来获取所有数据

希望有帮助