php - codeigniter 选择结果数组

标签 php mysql codeigniter

我正在尝试从 Codeigniter 框架中的数据库中选择数据。

我的 Controller

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"
    }
]

但是我不需要使用上面的结果“id”:“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"
                }
            ]
    }
] 

最佳答案

这是我的示例代码,希望对您有所帮助。

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);
} 

关于php - codeigniter 选择结果数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26490822/

相关文章:

PHP 搜索引擎无法运行?

php - fopen 权限被拒绝,Ubuntu,CodeIgniter

mysql - 将 mySQL 列拆分为多个

php - 使用 PDO 保存动态表单中的数据

php - 按顺序排列聊天消息

php - 使用 CodeIgniter 防止 MS SQL 注入(inject)

php - sql查询条件

php - 使用 Phalcon ORM 在相关表中查找数据

php - 根据带有 unix 时间戳的月份和年份选择总和

java - 将 SQL 日期时间转换为 Java