Probleme mit "Order by..."

Fohlenpower

Mitglied
Hallo,
ich habe in meiner Datenbank (SQL) eine Tabelle mit Daten (für einen Terminplaner).
Diese möchte ich für alle Personen gerne öffentlich anzeigen bzw. auslesen lassen. Gespeichert ist ein Datum im folgenden Format (in SQL) xxxx-xx-xx entspricht soviel wie yyyy-mm-dd. Nun möchte ich diese auslesen. Dazu habe ich den folgenden Code benutzt. Er zeigt die Termine zwar auch an aber leider nicht in der richtigen Reihenfolge. D.h. die nächsten Termine oben die letzten unten.
Hier der Code:
PHP:
<?php
include("config.php"); 
$queryx = mysql_query ("SELECT uhrzeit, was, wo, team, tag, DATE_FORMAT(datum, '%d.%m.%Y') datum FROM termine WHERE team LIKE 'ABC' order by 'datum' asc") or die(mysql_error()); 
print "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\">\n";
print "<tr><td class=\"v2\" width=\"5%\" align=\"left\"><font color=\"#000000\" size=\"2,5\"><b>Tag</b></font></td>\n";
print "<td class=\"v2\" width=\"14%\" align=\"left\"><font color=\"#000000\" size=\"2,5\"><b>Datum</b></font></td>\n";
print "<td class=\"v2\" width=\"12%\" align=\"left\"><font color=\"#000000\" size=\"2,5\"><b>Zeit</b></font></td>\n";
print "<td class=\"v2\" width=\"38%\" align=\"left\"><font color=\"#000000\" size=\"2,5\"><b>Was?</b></font></td>\n";
print "<td class=\"v2\" width=\"28%\" align=\"left\"><font color=\"#000000\" size=\"2,5\"><b>Treff</b></font></td></tr></table>\n";
print "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\">\n";
print "<tr><td class=\"v2\" width=\"5%\" align=\"center\"><font color=\"#000000\" size=\"2,5\">&nbsp;</font></td>\n";
print "<td class=\"v2\" width=\"14%\" align=\"center\"><font color=\"#000000\" size=\"2,5\">&nbsp;</font></td>\n";
print "<td class=\"v2\" width=\"12%\" align=\"center\"><font color=\"#000000\" size=\"2,5\">&nbsp;</font></td>\n";
print "<td class=\"v2\" width=\"38%\" align=\"center\"><font color=\"#000000\" size=\"2,5\">&nbsp;</font></td>\n";
print "<td class=\"v2\" width=\"28%\" align=\"center\"><font color=\"#000000\" size=\"2,5\">&nbsp;</font></td></tr></table>\n";

while($klick = mysql_fetch_array($queryx)) 
{
print "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\">\n";
print "<tr><td class=\"v2\" width=\"5%\" align=\"left\"><font color=\"#000000\" size=\"2,5\">$klick[tag],</font></td>\n";
print "<td class=\"v2\" width=\"14%\" align=\"left\"><font color=\"#000000\" size=\"2,5\">$klick[datum]</font></td>\n";
print "<td class=\"v2\" width=\"12%\" align=\"left\"><font color=\"#000000\" size=\"2,5\">$klick[uhrzeit]</font></td>\n";
print "<td class=\"v2\" width=\"38%\" align=\"left\"><font color=\"#000000\" size=\"2,5\">$klick[was]</font></td>\n";
print "<td class=\"v2\" width=\"28%\" align=\"left\"><font color=\"#000000\" size=\"2,5\">$klick[wo]</font></td></tr></table>\n";
}

?>

Wo liegt mein Fehler?
 
Wenn die Sortierung genau verkehrt herum ist, drehe sie doch einfach um, indem Du statt ascending descending sortierst.

Gruß hpvw
 
Und woran lag’s?

Übrigens: Der Code ist so sehr inperformant. Wenn du viel HTML und nur wenig PHP ausgeben willst, solltest du vom »PHP-Modus« zurück zum »HTML-Modus« wechseln:
HTML:
<?php
include("config.php"); 
$queryx = mysql_query ("SELECT uhrzeit, was, wo, team, tag, DATE_FORMAT(datum, '%d.%m.%Y') datum FROM termine WHERE team LIKE 'ABC' order by 'datum' asc") or die(mysql_error());
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
<tr><td class="v2" width="5%" align="left"><font color="#000000" size="2,5"><b>Tag</b></font></td>
<td class="v2" width="14%" align="left"><font color="#000000" size="2,5"><b>Datum</b></font></td>
<td class="v2" width="12%" align="left"><font color="#000000" size="2,5"><b>Zeit</b></font></td>
<td class="v2" width="38%" align="left"><font color="#000000" size="2,5"><b>Was?</b></font></td>
<td class="v2" width="28%" align="left"><font color="#000000" size="2,5"><b>Treff</b></font></td></tr></table>
<table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
<tr><td class="v2" width="5%" align="center"><font color="#000000" size="2,5">&nbsp;</font></td>
<td class="v2" width="14%" align="center"><font color="#000000" size="2,5">&nbsp;</font></td>
<td class="v2" width="12%" align="center"><font color="#000000" size="2,5">&nbsp;</font></td>
<td class="v2" width="38%" align="center"><font color="#000000" size="2,5">&nbsp;</font></td>
<td class="v2" width="28%" align="center"><font color="#000000" size="2,5">&nbsp;</font></td></tr></table>
<?php
while($klick = mysql_fetch_array($queryx)) 
{
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
<tr><td class="v2" width="5%" align="left"><font color="#000000" size="2,5"><?php echo $klick['tag']; ?>,</font></td>
<td class="v2" width="14%" align="left"><font color="#000000" size="2,5"><?php echo $klick['datum']; ?></font></td>
<td class="v2" width="12%" align="left"><font color="#000000" size="2,5"><?php $klick['uhrzeit'] ?></font></td>
<td class="v2" width="38%" align="left"><font color="#000000" size="2,5"><?php $klick['was'] ?></font></td>
<td class="v2" width="28%" align="left"><font color="#000000" size="2,5"><?php $klick['wo'] ?></font></td></tr></table>
<?php
}

?>
Übrigens solltest du beim Ausgeben der Arrayinhalte in der while-Schleife die (assoziativen) Indizes (also z.B. tag, datum etc.) mit Anführungszeichen umschliessen, sonst könnte der PHP-Interpreter denken, es handle sich um Konstanten. (Ich hab das oben mal korrigiert.)
 
Zurück