2014-12-08 2 views
1

PHP는 mysqli와 함께 두 개의 연결된 테이블에서 데이터를 가져 오기 오늘 (unix_date) user_days와 함께 user_days에 기록하고, 그렇다면 그 day_id 이후 day_id ID로 day_id 테이블에서 데이터를 얻을 필요가 ...나는 두 개의 연결된 테이블이

내가 쓰기 :

public function getDay($user_id) { 
     $stmt = $this->conn->prepare("SELECT d.id, d.day, d.status, d.created_at, d.dayDate from days d, user_days ud WHERE d.id = ? AND ud.dayDate = d.dayDate AND ud.user_id = ?"); 
     $t=time(); 
     $dayDate = date("Y-m-d",$t); 
     $stmt->bind_param("si", $dayDate, $user_id); 
     if ($stmt->execute()) { 
      $res = array(); 
      $stmt->bind_result($id, $day, $status, $created_at, $dayDate); 
      // TODO 
      // $task = $stmt->get_result()->fetch_assoc(); 
      $stmt->fetch(); 
      $res["id"] = $id; 
      $res["task"] = $task; 
      $res["status"] = $status; 
      $res["created_at"] = $created_at; 
      $res["dayDate"] = $dayDate; 
      $stmt->close(); 
      return $res; 
     } else { 
      return NULL; 
     } 

}

반대편에 내가 덜 중요한 코드가의 index.php로 : 난 그냥이 출력을 얻을

$app->get('/days', 'authenticate', function() { 
      global $user_id; 
      $response = array(); 
      $db = new DbHandler(); 

      // fetch task 
      $result = $db->getDay($user_id); 

      if ($result != NULL) { 
       $response["error"] = false; 
       $response["id"] = $result["id"]; 
       $response["day"] = $result["day"]; 
       $response["status"] = $result["status"]; 
       $response["createdAt"] = $result["created_at"]; 
       $response["dayDate"] = $result["dayDate"]; 
       echoRespnse(200, $response); 
      } else { 
       $response["error"] = true; 
       $response["message"] = "The requested resource doesn't exists"; 
       echoRespnse(404, $response); 
      } 
     }); 

을하는 정확하지 :

Object {error: false, id: 0, day: null, status: 0, createdAt: null} 

내 QUERY의 문제점은 QUERY에 문제가 있다고 생각되지만 시간 단위로 해결할 수 있습니다. ...

+0

http://dev.mysql.com/doc/refman/5.0/en/join.html은 귀하의 친구입니다 ... – RobP

답변

2

getday()에서 $res["task"] = $task;$res["day"]=$day으로 대체해야한다고 생각합니다.

+0

괜찮 았지만 그 문제는 없었습니다. QUERY를 변경하면 문제를 해결할 수 있습니다 : 어디 d.dayDate = ? AND ud.dayDate = d.dayDate AND ud.user_id =? "); – LaraBeginer