2

これが私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

実行中のサンプル結果は次のとおりです。 ここに画像の説明を入力してください

ストアドプロシージャのモデルは次のとおりです。

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タスクテーブルに表示されません。私は何を間違えましたか?ありがとう。

4

1 に答える 1

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();
}
于 2013-01-29T06:20:17.703 に答える