carsten wilke: Liegt die Lösung bei mySQL oder PHP?

Beitrag lesen

Hallo zusammen,
die Newsseite meiner Homepage wird aus einer mySQL-Tabelle dynamisch erzeugt, diese mySQL-Tabelle besteht aus 4 Spalten (einer ID, dem Datum, einer Überschrift und dem Text selbst). Die Newsseite hat folgenden Aufbau:

18.7.: [Überschrift1]
18.7.: [Überschrift2]
17.7.: [Überschrift3]
16.7.: [Überschrift4]

Ich hätte es nun ganz gerne, wenn, falls an einem Tag mehrere News gepostet werden (wie in diesem Beispiel am 18.7.), daß ganze folgendermaßen aussieht:

18.7.: [Überschrift1]
       [Überschrift2]
17.7.: [Überschrift3]
16.7.: [Überschrift4]

Das Datum sollte also nicht wiederholt werden, falls es an diesem Tag mehrere Einträge gibt. Ich habe jetzt leider keine Idee, wie ich dieses Problem mit PHP angehen könnte, oder müsste ich die Lösung bei mySQL suchen? Hätte vielleicht jemand von euch ein kleines Stichwort, wo ich da anfangen könnte?
Danke und viele Grüsse,

Nicolas Muehlen

Also ich hatte ein ähnliches problem, hab es selbstgestrickt mit mysql hinbekommen, ich hatte aber kein datum sondern Abteilungsnr, wird mit daten (mehrzahl von Datum?) aber analog funzen. Du solltest auf jeden Fall für jedes Datum eine Nummer haben, dann ist es easy. Also angenommen du packst noch datumnr hinzu, sieht dein code so aus:(obs die sauberste Art ist? Keine Ahnung!)

sql query:  blabla ... order by datumnr desc;
$i=0;  
if ($row=mysql_fetch_array($result))
{  
do
{
   if ($row[datumnr] == $i)    
       ^^^^^^^^^^^^
//    wenn deine Datumsnummer schon einmal dagewesen ist, dann
//    reicht es die Ueberschrift auszugeben
   {    
      echo "<p><b class='normal'>$row[ueberschrift]</b>";
      echo "</p>";
   }      
   else  //sollte die datumsnr noch nicht dagewesen sein,
         //inkrementiere bis du eine nächste datumsnr gefunden hast
         //wichtig, wenn mal an einem Tag keiner was postet!
   {      
    do    
     {    
       $i++;
     }    
    while ($i < $row [datumnr]);
// jetzt ist ja hier ein neues datum, dehalb solls auch ausgegeben
// werden! Dadurch, daß jetzt i==datumnr ist, wird ja jetzt bis zum
// nächsten Datum nur noch die ueberschrift "ge-echot"
  echo "$row[datum]";    
  echo "<p><b class='normal'>$row[autoren]</b></p>";   }
}
while ($row=mysql_fetch_array($result));

Wahrscheinlich schlecht erklärt, aber probier es einfach mal aus.

Gruß,Carsten