2013-04-27 3 views
0

Я очень застрял в своем деле. Вот я дам, что застрял:Отображать данные в логической таблице табличной страницы

У меня есть таблица:

form_no | model_name | status | date_check 

Теперь у меня есть данные:

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

Теперь я хочу, чтобы показать его в моей странице с помощью PHP кода. Мы видим, что имя_пользователя имеет одно и то же имя, но имеет другой статус и дату_чека.

Что я хочу сделать, как сделать это 1 информацией без данных цикла. Таким образом, данные будут отображаться в моей странице, как это:

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

-

<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> 

Мы видим, что в столбце Состояние вчера и статус Сегодня еще нет PHP кода, потому что я путать, как это сделать шоу на основе вчера и сегодня.

Последний раз я просто сделать это следующим образом:

добавить

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

Но это будет только вчера, и если добавить status_today как статус вчера это будет те же данные.

+0

Привет! Пожалуйста, см. Мои вопросы .. Спасибо –

ответ

0

Вы можете сделать LEFT JOIN в запросе, и создать новый столбец - status_yesterday

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 

увидеть SQLFiddle. http://sqlfiddle.com/#!2/e2de8/3

Примечание Я жёстко даты в запросе, но вы можете изменить его с помощью NOW() и NOW() - INTERVAL 1 DAY

Смежные вопросы