verschachtelte WHILE-Schleifen

schlodd

Mitglied
hallöchen an alle, ich möchte gern auf meine Seite einen Eventkalender basteln,
der beim ersten Aufruf wie auf meiner jetzigen Seite edit(off) zu sehen ist, aussieht.
Problem ist, dass nur das erstgefunde Datum mit den dazugehörigen Datensätzen
ausgegeben wird. Ergebnis soll sein: Eine HTML-Tabelle mit einer Spalte

Zelle 1 erstgefundes Datum
Zelle 2 alle Datensätze mit erstgefunden Datum

Zelle 3 2.nächsteses Datum
Zelle 4 alle Datensätze mit 2.nächsteses Datum usw.

ich hoffe ihr könnt mir helfen und bedank mich schonmal im Voraus für alles

PHP:
    echo "<table cellspacing=\"0\" cellpadding=\"2\" border=\"0\" class=\"text1\">";
    $sql = "SELECT
                DISTINCT dates
            FROM
                tour
            WHERE
                dates>='$today'
            ORDER BY
                dates";
    $result = mysql_query($sql, $db);

    while($row = mysql_fetch_array($result)) {
        $datrow=$row['dates'];
        echo "<tr><td bgcolor=\"#000000\"><font color=\"#FF9900\"><b>" . $datrow . "</b></font></td></tr>\n<tr><td>";

        $sql = "SELECT
                    *
                FROM
                    tour
                WHERE
                    dates='$datrow'
                ORDER BY
                    dates";
        $result = mysql_query($sql, $db);

        while($row = mysql_fetch_array($result)) {
            echo $row['dates']." *".$row['a01'];
            if($row['a02'] !='') {
                echo ", ".$row['a02'];
                }
            if($row['a03'] !='') {
                echo ", ".$row['a03'];
            }
            echo " in " . $row['country'] . " " . $row['place'];
            if ($row['venue'] != '') {
                echo " / ".$row['venue'];
            }
            echo "<br>\n";
        }
        echo "</td></tr>\n";                
    }
    echo "</table>";
    error_reporting(E_ALL);
 
Zuletzt bearbeitet:
Vor allem sollte man diese unperformate Verschachtelung zweier SQL-Abfragen unterlassen und stattdessen eine verwenden:
PHP:
$sql = "SELECT DISTINCT tour.*
        FROM tour, dates
        WHERE tour.dates = dates.dates
        ORDER BY dates.dates";

snuu
 
Danke Euch beiden vielmals

@ Johannes Röttger, an den Variablen hat es gelegen wie Du schon erkannt hast. Habe auch die $result noch ändern müssen und jetzt funktioniert´s super ;-)

@snuu, Danke auch für Deinen Tip, das habe ich bisher noch nicht so gesehen, werd´s aber mal ausprobieren, sieht so schön kurz aus...
 
Zurück