2015-03-16 3 views
0

У меня есть база данных MySQL с таблицей обзывали следующим образом:Отображение баз данных Значения в Дата Группы

======== ========== =========== 
date  name1  name2 
======== ========== =========== 
01/01/15 nameA  nameB 
01/01/15 nameC  nameD 
02/01/15 nameE  nameF 
03/01/15 nameG  nameH 
03/01/15 nameI  nameJ 
03/01/15 nameK  nameL 
04/01/15 nameM  nameN 

Я хочу, чтобы выводить значения в таблицу следующим образом:

============================================== 
        01/01/15 
============================================== 
      nameA    nameB 
      nameC    nameD 
============================================== 
        02/01/15 
============================================== 
      nameE    nameF 
============================================== 
        03/01/15 
============================================== 
      nameG    nameH 
      nameI    nameJ 
      nameK    nameL 
============================================== 
        04/01/15 
============================================== 
      nameM    nameN 

Am I ищет цикл FOREACH?

Это код, я работаю с на данный момент ...

<?php 
$result = mysql_query("SELECT * FROM names ORDER BY date ASC") or die("SELECT Error: ".mysql_error()); 
    echo '<table>'; 
    while ($row = mysql_fetch_assoc($result)) 
    { 
     echo '<tr><td>'.$row['name1'].'</td><td>'.$row['name2'].'</td></tr>; 
    } 
    echo '</table>'; 
?> 
+0

Да вы. Проверьте дату, если это то же самое, что и не печатать строку заголовка, если она отличается от –

+1

Обычно используется цикл while ($ row = mysqli_fetch_assoc ($ result)). – bloodyKnuckles

+0

У меня есть цикл while, просто борющийся с разбиванием каждой группы значений на дату. Просто попробуйте предложение Майка Миллера сейчас, кажется достаточно простым. – James

ответ

0

Дата испытаний в каждом цикле. Если его пустой или изменился с предыдущего цикла, вы заголовок строки.

<?php 

$result = mysql_query("SELECT * FROM names ORDER BY date ASC") or die("SELECT Error: ".mysql_error()); 
$date=null; 
echo '<table>';  
while ($row = mysql_fetch_assoc($result)) {  
    If($date !==$row['date']){ 
     $date=$row['date']; 
     //and echo your header html 
    } 
    echo '<tr><td>'.$row['name1'].'</td><td>'.$row['name2'].'</td></tr>; 
} 
echo '</table>'; ?> 
0

Я нашел ответ на мой вопрос в другом посте, вот код для тех, кто с подобным запросом:

<?php 
 
$result = mysql_query("SELECT * FROM names ORDER BY date ASC") or die("SELECT Error: ".mysql_error()); 
 
\t $date = ""; 
 
\t echo '<table>'; 
 
\t while ($row = mysql_fetch_assoc($result)) 
 
\t \t { 
 
\t \t \t if ($date !== $row["date"]) { 
 
\t  \t $date = $row["date"]; 
 
\t \t \t echo "<tr><td>$date</td></tr>"; 
 
\t  { 
 
\t \t echo '<tr><td>'.$row['name1'].'</td><td>'.$row['name2'].'</td></tr>; 
 
     } 
 
    echo '</table>'; 
 
?>

+0

Это тот! Возможно, вы захотите использовать атрибут span в поле даты, например this 'span =" 2 ", поэтому ячейка охватывает всю ширину таблицы. –

+0

. Скорее всего, Майк Миллер, я буквально просто добавляю это сейчас - большое вам спасибо за помощь , – James

+0

Нет проблем! Классическая проблема –

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