2016-04-07 6 views
0

Ich habe eine Liste von Updates, die ich auf meiner Seite anzeigen möchte, aber ich möchte sie auflisten und gruppieren sie durch Updates pro Tag.Mit MySQL und PHP Daten anzeigen und gruppieren

so zB ich möchte, dass sie aussehen

<tr> 
    <td colspan=3>April 07 2016</td> 
</tr> 
<tr> 
    <td>Update4</td> 
    <td>Category</td> 
    <td>Added By</td> 
</tr> 
<tr> 
    <td>Update3</td> 
    <td>Category</td> 
    <td>Added By</td> 
</tr> 
<tr> 
    <td>Update2</td> 
    <td>Category</td> 
    <td>Added By</td> 
</tr> 
<tr> 
    <td colspan=3>March 29 2016</td> 
</tr> 
<tr> 
    <td>Update1</td> 
    <td>Category</td> 
    <td>Added By</td> 
</tr> 

Also sage ich hinzufügen 3 Updates zu diesem Zeitpunkt sie unter diesem Zeitpunkt gezeigt werden, und wenn ich hinzufügen 2 Updates 2 Tage später sie unter diesem Datum angezeigt.

Ich habe einige Schnipsel online gesehen und ich dachte, eine GROUP By würde funktionieren.

SELECT `title`, `addedby`, `description`, `date_added` 
FROM updates WHERE `status`=1 GROUP BY MONTH(date_added) 
+0

try GROUP BY DATE (DATE_ADDED) – Johan

+0

Sie können dies allein mit SQL nicht tun, Verwenden Sie "ORDER BY date_added" anstelle von GROUP BY und schreiben Sie ein Stück PHP, das den Titel, die Beschreibung usw. rendert und eine zusätzliche Datumszeile darstellt, wenn das Datum der aktuellen Zeile vom Datum der vorherigen Zeile abweicht – McIntosh

Antwort

0

haben Sie das versucht?

$query=SELECT `title`, `addedby`, `description`, `date_added` 
FROM updates WHERE `status`=1 GROUP BY date(date_added) 

wenn Sie anzeigen möchten, dann müssen Sie diese

$result = $conn->query($sql) 
if ($result->num_rows > 0) { 
while($row= $result->fetch_assoc()) 
{ 
$title=$row['title']; 
$aded=$row['addedby']; 
} 

dann diese Variablen setzen, wo Sie die Werte

+0

Yeah aber ich muss es in einer Tabelle anzeigen mit PHP ist der schwierige Teil. –

+0

hey es ist nicht so schwer. Hast du jemals mysql_fetch_assoc benutzt? – Talhiner

+0

@LiamArmour sehe ich etwas bearbeiten – Talhiner

0

Gruppe von für Aggregatfunktion ist zB drucken möchten.

select month(date_added), count(*) 
from updates 
WHERE `status`=1 GROUP BY MONTH(date_added); 

not for conditional query like you want 

In Ihrem Fall sollten Sie Schleife für Sie DATE_ADDED Wert (der Code unten ist nur ein Vorschlag)

foreach ($Array_date_vales as $key => $value) { 

"SELECT `title`, `addedby`, `description`, `date_added` 
where WHERE `status`=1 and MONTH(date_added) = " . $value 

}