在codeIgniter中连接表后无法显示完整数据

时间:2013-01-29 05:43:34

标签: php codeigniter mysqli

以下是模型上的PROCEDURE

CREATE DEFINER=`root`@`localhost` PROCEDURE `service_tasks_read`(
IN i_user_id    INT(255))
BEGIN
SELECT * FROM tasks LEFT JOIN projects ON tasks.project_id = projects.id WHERE projects.manage_user_id = i_user_id; 
END

以下是正在运行的示例结果: enter image description here

这是storedprocedure的模型:

public function service_tasks_read($aUserId)
{
    $r_result = $this->db->query("CALL service_tasks_read('".$aUserId."')");

    return $r_result;
}

所以,当我把它打印回我的控制器时:

    $aData = $CI->storedprocedure->service_tasks_read($aUserId);

    for($i = 0; $i < $aData->num_rows(); $i++)
    {
        echo('$i    '.$i.': ');
        print_r($aData->_fetch_assoc($i));
        echo('<br/>');
    }

结果如下:

$i 0: Array (
    [id] => 3
    [project_id] => 3
    [name] => #SYS#_DEFAULT
    [status] => 0
    [due_datetime] => 2013
    [manage_user_id] => 47
) 
$i 1: Array (
    [id] => 3
    [project_id] => 3
    [name] => #SYS#_DEFAULT
    [status] => 0
    [due_datetime] => 2013
    [manage_user_id] => 47
) 
$i 2: Array (
    [id] => 3
    [project_id] => 3
    [name] => #SYS#_DEFAULT
    [status] => 0
    [due_datetime] => 2013
    [manage_user_id] => 47
) 
$i 3: Array (
    [id] => 3
    [project_id] => 3
    [name] => #SYS#_DEFAULT
    [status] => 0
    [due_datetime] => 2013
    [manage_user_id] => 47
) 

它无法显示任务表中的id,project_id,name, status,due_datetime。我做错了什么?谢谢。

1 个答案:

答案 0 :(得分:3)

您只需以对象格式

返回结果即可
public function service_tasks_read($aUserId)
{
    $r_result = $this->db->query("CALL service_tasks_read('".$aUserId."')");

    return $r_result->result(); // for array $r_result->result_array();
}