Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Sortierung nach Datum [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Sortierung nach Datum


 
zerosero
25-01-2003, 11:19 
 
Hi,

habe mich schon ein wenig hier durchgewühlt, aber nicht wirklich eine Lösung für mein problem gefunden!

Habe eine Film Liste - der Anwender soll nun die Möglichkeit haben diese Liste nach dem Datum des Eintrage zu sortieren!
Datum wird im Format timestamp(14) gespeichert!

Mein Code sieht wie folgt aus:


echo "<td><a href='f.php?sort=film_name'>Film</a></td>";
echo "<td>CDs</td>";
echo "<td><a href='f.php?sort=laenge'>Länge</a></td>";
echo "<td><a href='f.php?sort=jahr'>Jahr</td>";
echo "<td><a href='f.php?sort=format'>Format</td>";
echo "<td><a href='f.php?sort=sprache'>Sprache</td>";
echo "<td><a href='f.php?sort=genre'>Genre</td>";
echo "<td><a href='f.php?sort=datum'>Added</td></tr>";

$orderby = !$_GET[sort]?"film_name":$_GET[sort];

$query = mysql_query("SELECT *,date_format(date,'%d.%m.%Y') as datum FROM film ORDER BY $orderby ASC");

while ($daten = mysql_fetch_array($query))
{


Mein problem: er sortiert nach dem Monatstag, aber nicht nach Jahr -> Monat -> Monatstag!

Wie kann ich das ändern? Und als zweites Sortierkriterium soll er dann nach Alphabet (Filmname) sortieren!

Wäre nett wenn mir jemand helfen könnte!

 
MelloPie
25-01-2003, 12:17 
 
Wie soll denn nach Jahr sortiert werden? Gibt es eine Spalte Jahr?
Wenn nicht dann brauchst Du bei Jahr das
YEAR(datum);
Ein zweites Order machst Du einfach so:
ORDER BY order1, order2

 
zerosero
25-01-2003, 12:21 
 
Danke für die Antwort.

Es gibt eine Spalte "Added", die auch angezeigt wird. Im Format 25.01.2003

date_format(date,'%d.%m.%Y')

Die Augabe in der Spalte soll halt wie oben bechrieben erfolgen, d.h. der neueste Eintrag oben (soll erfolgen, wenn man dieses Sortierkriterium auswählt!)

 
zerosero
02-02-2003, 13:27 
 
OK - er sortiert nun nach Datum - als zweites Kriterium soll er nach Filmname sortieren - habe es wie folgt gelöst - nur leider funktioniert es nicht! Jemand eine Idee?

Vor allem wäre es schön, wenn er alles ASC sortieren würde, nur beim Datum DESC, so dass die neuesten oben stehen!


print "</td></tr>";
echo "<table width='750' border='1' cellspacing=0 cellpadding=3 class=m>";
echo "<tr>";
echo "<td><a href='f.php?sort=film_name'>Film</a></td>";
echo "<td>CDs</td>";
echo "<td><a href='f.php?sort=laenge'>Länge</a></td>";
echo "<td><a href='f.php?sort=jahr'>Jahr</td>";
echo "<td><a href='f.php?sort=format'>Format</td>";
echo "<td><a href='f.php?sort=sprache'>Sprache</td>";
echo "<td><a href='f.php?sort=genre'>Genre</td>";
echo "<td><a href='f.php?sort=date'>Added</td></tr>";

$orderby = !$_GET[sort]?"film_name":$_GET[sort];

$query = mysql_query("SELECT *,date_format(date,'%d.%m.%Y') as datum FROM film ORDER BY $orderby ASC, film_name ASC");


Ach ja - evtl. verschieben ins SQL Forum? Hab mich vertan....

 
mrhappiness
02-02-2003, 13:32 
 
$orderby = !$_GET[sort]?"film_name":$_GET[sort];
$orderby.=($orderby=='date')?' DESC':' ASC';
$query = mysql_query("SELECT *,date_format(date,'%d.%m.%Y') as datum FROM film ORDER BY $orderby, film_name ASC");
ungetestet

 
zerosero
02-02-2003, 13:40 
 
Danke . aber leider funktioniert es nicht. Ers ortiert nun zuerst nach Datum, auch das neueste oben, aber das zweite Sortierkriterium nach film_name scheint er gar nicht zu berücksichtigen! Kann es evtl. an meiner Ausgabe liegen?


while ($daten = mysql_fetch_array($query))
{
print "<tr><td class=\"film\" onMouseOver=\"this.style.backgroundColor='#536a88';
this.style.cursor='hand';\"
onMouseOut=\"this.style.backgroundColor='#022744';\" onClick=\"window.location.href='show_d.php?id=$daten[id]'\">
<a href=\"show_d.php?id=$daten[id]\">$daten[film_name]</a></td>";
print "<td class=\"film_c\">$daten[cds]</td>
<td class=\"film_c\">$daten[laenge]&nbsp;min</td>
<td class=\"film_c\">$daten[jahr]</td>
<td class=\"film_c\">$daten[format]</td>";
if ($daten[sprache] =="de" || $daten[sprache] =="en" )
{
print "<td class=\"film_c\"><img src=\"../pics/$daten[sprache].gif\" border=0></td>";
}
else
{
print "<td>$daten[sprache]</td>";
}
print "<td class=\"film\">$daten[genre]</td>";
print "<td class=\"film\">$daten[datum]</td>
</td></tr>";
}
print "</table><br>";

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:08 Uhr.