2014-10-21 11 views
0

Я пытаюсь выбрать данные из моей базы данных в рамках codeigniter.codeigniter select result array

Мой контроллер

public function GetNewestPointers() 
{ 
    $user_last_login= $this->api_model->getUserLastLogin(); 
    $result = $this->api_model->getNewestPointers($user_last_login); 

    if ($result) 
    { 
    $status = "1"; 
    $msg = "SUCCESS"; 
    } 
    else 
    { 
    $status = "0"; 
    $msg = "ZERO_RESULT"; 
    } 

    $output = array(
    'status' => $status, 
    'message' => $msg, 
    'result' => $result 
); 

    jsonOutput($output); 
} 

Моя модель

public function getNewestPointers($user_last_login) 
{ 
    $query = $this->db->query("select * from `pointer_info` where `create_date`> '$user_last_login'"); 
    return $query->result_array(); 
} 

public function getUserLastLogin() 
{ 
    $userId = $this->input->get_post('userId'); 
    $query = $this->db->query("select * from `users` where `id` = '$userId'"); 

    if ($query->num_rows() == 0) 
     return "0"; 
    else 
     return $query->row('last_login'); 
} 

Мой текущий выходной процесс

"status":"1", 
"message":"SUCCESS", 
"result":[ 
    { 
     "id":"15", 
     "title":"Test Pointer Title", 
     "upload_by":"53", 
     "create_date":"1413901780", 
     "current_status":"approved" 
    }, 
    { 
     "id":"14", 
     "title":"Test Pointer Title", 
     "upload_by":"53", 
     "create_date":"1413901750", 
     "current_status":"approved" 
    } 
] 

Но мне не нужны выбора данных из другой таблицы, используя выше результата "ид" : "14"

и должны показать данные второго запроса в «item_list» как

"status":"1", 
"message":"SUCCESS", 
"result":[ 
    { 
     "id":"15", 
     "title":"Test Pointer Title", 
     "upload_by":"53", 
     "create_date":"1413901780", 
     "current_status":"approved", 
     "item_list":[ 
       { 
        "id":"138", 
        "name":"test", 
        "picture":"", 
        "purchase_status":"no", 
        "total_quantity":"25" 
       }, 
       { 
        "id":"139", 
        "name":"New name2", 
        "picture":"", 
        "purchase_status":"no", 
        "total_quantity":"1" 
       } 
      ] 
    } 
] 
+0

Ну, похоже, вам нужно объединить данные со второй таблицы. Запрос запрашивает только одну таблицу. Вы попытались присоединиться к этой второй таблице и построить структуру данных, которую ищете? Если да, в чем проблема, с которой вы столкнулись? –

ответ

0

Это мой пример кода, я надеюсь, что это помогает.

public function GetNewestPointers() 
{ 
    $user_last_login= $this->api_model->getUserLastLogin(); 
    $result = $this->api_model->getNewestPointers($user_last_login); 

    if ($result) 
    { 
    $status = "1"; 
    $msg = "SUCCESS"; 
    } 
    else 
    { 
    $status = "0"; 
    $msg = "ZERO_RESULT"; 
    } 

    // sample code 
    foreach ($result as $data) 
    { 
    $item_list = $this->api_model->getIdData($data['id']); 
    $result[$data['id']]['item_list'] = $item_list; 
    } 

    $output = array(
    'status' => $status, 
    'message' => $msg, 
    'result' => $result 
); 

    jsonOutput($output); 
}