php - Codeigniter mysql 查询中未定义索引

标签 php mysql codeigniter

我在 codeigniter 模型中使用以下 mysql 查询:

$query = 'SELECT t.*, p.id as project_id, p.name as project_name, p.archive as project_archive
FROM project p
JOIN user_project up ON p.id = up.project AND up.user = '.$user.'
LEFT JOIN (SELECT tmp.* FROM
(SELECT *, IF( @prev <> project_id, @rownum := 1, @rownum := @rownum+1 ) AS rank, @prev := project_id
FROM task t
JOIN (SELECT @rownum := NULL, @prev := 0) AS r 
WHERE user_id = '.$user.' AND status < 3
ORDER BY t.project_id) AS tmp
WHERE tmp.rank <= 1) AS t ON p.id = t.project_id
ORDER BY p.id desc, t.status desc';

    $get = $this->db->query($query);

    if($get->num_rows > 0)
        return $get->result_array();

    return array();

这工作正常,但我现在想从同一个表中检索一个附加列作为 id 和 name。列名称是“archive”,我尝试添加

p.archive as project_archive

到第一行的末尾,但当我尝试在 View 中使用此变量时,它给了我一个“ undefined index :project_archive”错误。为了确保数据库中的一切正确,我将第一行更改为

$query = 'SELECT t.*, p.id as project_id, p.archive as project_name

正如预期的那样,存档值作为项目名称打印出来。那么为什么我不能添加额外的 p.archive 作为project_archive???我的 Controller 和 View 代码如下

Controller :

public function index()
{
    $this->title = 'Dashboard';
    $this->menu = 'users|new_project';

    //Load models
    $this->load->model('project_model');
    $this->load->model('task_model');

    // Load tasks
    $data['tasks'] = $this->task_model->get_user_tasks($this->session->userdata('user'));

    $data['page_title']  = "Dashboard";
    $data['status_arr'] = $this->task_model->get_status_array();

    // Load View
    $this->load->view('dashboard', $data);
}

在 View 中我调用以下内容:

$tasks['project_archive'] <!-- undefined index error -->
$task['project_id'] <!-- working as expected -->
$task['project_name'] <!-- working as expected -->

最佳答案

哦。结果索引未定义的原因是代码需要在 foreach 循环中给出一个值,而不是在 foreach 循环之外调用并获取数组。

关于php - Codeigniter mysql 查询中未定义索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21241405/

相关文章:

codeigniter - 使用 jquery 从数据库获取单个结果的模型

MySQL 服务器已消失错误号 : 2006

php - 将mysql时间戳转换为php用户友好版本

php - jQuery 和 Ajax 返回不同的数据集,而不是创建单独的 ajax 调用

javascript - 通过jQuery解析JSON列表

php - 如何从mysql数据库中检索特定数据

php - 使用ajax从数据库中选取数据并保存最后选取的数据

database - 从 codeigniter 3 中的关系表中计算项目

php - 使用 Javascript 的 Ajax

javascript - 如何从php获取数据到jquery