Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CodeIgniter Ajax不返回MySQL数据_Mysql_Ajax_Codeigniter_Jquery - Fatal编程技术网

CodeIgniter Ajax不返回MySQL数据

CodeIgniter Ajax不返回MySQL数据,mysql,ajax,codeigniter,jquery,Mysql,Ajax,Codeigniter,Jquery,基本上,我有一系列函数,它们加载一组博客条目来构建页面。在页面底部,我有一个链接,该链接启动jQuery-Ajax到Ajax控制器,该控制器使用完全相同的函数字符串加载具有不同偏移量的更多博客条目 我最初在其中一个函数中有两个查询。计算总共存在多少行的函数,并调用返回10行或更少行的数据的主函数。我得到了所有的数据,除了主要的博客条目数据 以下是大部分代码,我删去了函数中与此无关的所有内容: 主视图控制器 Ajax控制器 模型 我认为问题出在哪里 我在JavaScript中得到的返回数据是: {

基本上,我有一系列函数,它们加载一组博客条目来构建页面。在页面底部,我有一个链接,该链接启动jQuery-Ajax到Ajax控制器,该控制器使用完全相同的函数字符串加载具有不同偏移量的更多博客条目

我最初在其中一个函数中有两个查询。计算总共存在多少行的函数,并调用返回10行或更少行的数据的主函数。我得到了所有的数据,除了主要的博客条目数据

以下是大部分代码,我删去了函数中与此无关的所有内容:

主视图控制器 Ajax控制器 模型 我认为问题出在哪里 我在JavaScript中得到的返回数据是:

{"type":"list","view":"blog_view","total":5,"current":10,"entries":[]}
如您所见,即使我通过Ajax控制器传递相同的数据,entries数组仍然是空的。我对它不太熟悉,尤其是对它使用Ajax,所以如果有人能帮助我,我将不胜感激,因为这真的让我很痛苦


另外,我知道问题不在JavaScript代码中,因为我尝试在process_data函数中添加一些静态数据,看看它是否会出现,并且会出现,因此这就是为什么我没有添加JavaScript代码的原因。

只是猜测,因为我不确定您的JavaScript调用了什么,但是,如果您正在调用get_blog_data,并且希望jQuery可以使用输出,那么它将不起作用。如果是这种情况,您应该使用json编码或打印/回显数据,而不是返回。

在进行了一些搜索之后,我找到了返回最后一个查询的最后一个查询codeigniter函数,这样我就可以看到出了什么问题

$return['last'] = $this->db->last_query();
下面是通过AJAX运行的查询

SELECT `blog`.`id`, `title`, `type`, `date`, `message`, `images`\nFROM (`blog`)\nLEFT JOIN `blog_img` ON `blog_img`.`id` = `blog`.`id`\nWHERE  `date`  LIKE 'blog\\_data%'\nORDER BY `blog`.`id` desc\nLIMIT 10"

如果您查看ajax控制器I echo json_encode$data,我最终能够找到问题

private function get_blog_data($data,$offset) {
    $return = array('type' => $data['type']);
    $limit;
    $select;

    if (false) {
    }
    else {
        $return['view'] = 'blog_view';

        $this->db->select('id');
        $r = $this->db->get('blog');
        $return['total'] = $r->num_rows() - ($offset + 10);
        $return['current'] = $offset + 10; // This returns

        $limit = 10;
        $select = 'blog.id,title,type,date,message,images';
        $this->db->order_by('blog.id','desc');
        if (isset($data['date'])) $this->db->like('date',$data['date'],'after');
    }

    $this->db->select($select);
    $this->db->from('blog');
    $this->db->join('blog_img','blog_img.id = blog.id','left');
    $this->db->limit($limit,$offset);

    // This does not return any data in the Ajax call.
    $return['entries'] = $this->blog_model->process_data($this->db->get());

    return $return;
}

private function process_data($data) {
    foreach($data->result() as $i => $row) {
        //Formats the data
    }
}
{"type":"list","view":"blog_view","total":5,"current":10,"entries":[]}
$return['last'] = $this->db->last_query();
SELECT `blog`.`id`, `title`, `type`, `date`, `message`, `images`\nFROM (`blog`)\nLEFT JOIN `blog_img` ON `blog_img`.`id` = `blog`.`id`\nWHERE  `date`  LIKE 'blog\\_data%'\nORDER BY `blog`.`id` desc\nLIMIT 10"