2013-04-27 6 views
0

나는 내 경우에 아주 고생하고있다. 표 페이지 논리에 데이터를 표시하지 않음

1 | mouse | OK | 26-Apr-2013 
2 | mouse | NG | 27-Apr-2013 

는 이제 PHP 코드를 사용하여 내 페이지에 보여주고 싶은 :
form_no | model_name | status | date_check 

지금 내가 데이터를 가지고 : 내가 테이블이

: 여기 붙어 있음을 줄 것입니다. model_name은 같은 이름을 가지고 있지만 status와 date_check가 다른 것을 볼 수 있습니다.

내가하고 싶은 것은 루핑 데이터없이 1 정보로 만드는 방법입니다. 그래서 데이터는이 같은 내 페이지에 표시됩니다 :

No | Model Name | Status Yesterday | Status Today 
1 | mouse  | OK    | NG 

-

우리는 그것을 만드는 방법을 혼동 원인 열 상태에서 어제와 상태 오늘은 여전히하는 PHP 코드가없는 것을 볼
<table> 
<td>No</td><td>Model Name</td><td>Status Yesterday</td><td>Status Today</td> 
<tr> 
<?php 
$query = "SELECT * FROM t_prod"; 
$result = mysql_query($query); 

while ($data = mysql_fetch_array($result)) 
{ 
    $model_name = $data['model_name']; 
?> 

<td>1</td><td><?php echo $model_name; ?></td><td>Status yesterday</td><td>Status Today</td> 

<?php 
} 
?> 
</table> 

어제와 오늘을 기준으로 표시됩니다.

내가

$status_yesterday = $data['status']; 
$status_today = ? 

을 추가하지만 그것은 단지 어제 것이며, 어제와 같은 상태가 status_today를 추가 할 경우이 같은 데이터가 될 것입니다 :

마지막으로 난 그냥 이런 식으로합니다.

+0

안녕을 사용하여 수정할 수 있습니다! 내 질문을 참조하십시오 .. 감사합니다 Logged –

답변

0

당신은 당신의 쿼리에서 LEFT JOIN를 수행하고 새 열을 만들 수 있습니다 -

SELECT 
    t.form_no, t.model_name, t.status as status_today, y.status_yesterday 
FROM 
    t_prod t 
LEFT JOIN 
    (SELECT model_name, status AS status_yesterday FROM t_prod WHERE date_check = '2013-04-26') y 
ON t.model_name = y.model_name 
WHERE date_check = '2013-04-27' 
GROUP BY model_name 

status_yesterday이 SQLFiddle를 참조하십시오. http://sqlfiddle.com/#!2/e2de8/3

참고 나는 쿼리에 날짜를 하드 코딩,하지만 당신은 NOW()NOW() - INTERVAL 1 DAY

관련 문제