MySQL ORDER

Hallo Leute!

Kann mir jemand sagen, wie ich diese Stelle

if ($sort == ‚0‘) {
$query2 = „SELECT * From $variable[cattable]“;
}
else {
$query2 = „SELECT * From $variable[cattable] ORDER by $variable[cattable].catname ASC“;
}

so umschreibe, das der MySQL Inhalt nach Alter anstatt nach Alphabet geordnet wird? Sodass die erste eingetragene Categorie oben ist, und die letzte unten ist? Habe schon bei Zend nachgesehn, in Sachen MySQL ist dort aber tote Hose.

Schönen Abend noch,
Stephan

…so umschreibe, das der MySQL Inhalt nach Alter anstatt nach Alphabet geordnet wird…

was willst du erreichen ? wie sieht deine tabelle aus ? willst du nach kategorien grouppieren ?

und auf mysql.com gibts viele tolle infos zu saemtlichen mysql-funktionen :wink:

na, ich hoffe, du hast eine datetime - column dabei, die du beim einfügen brav auf now() setzt.

dann wirds sortieren schon recht einfach. und jetzt das beste: ‚order by catdate, catname‘!

nicht nur nach datum, sondern auch noch nach name!
alles in der mysql-doku.

  • stefan

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Stefan,

keine Angst wie ich deine Bruchstücke in die beagten Lines unten einbringen soll. Wohin kommt denn das now()?

Gruß
Stephan

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

hu!

wäre natürlich nicht schlecht, zu wissen, wie deine tabelle aussieht. du benötigst einfach eine spalte, in der mitgespeichert wird, wann der datensatz angelegt wird. nennen wir sie „catdate“: die legst einen neuen datensatz an:
$query = ‚insert into tbl_cattable (catname, catdate) values ("‘.$catname.’", now())’;

jetzt hast du ein datum, nach dem du sortieren kanns.

auslesen tust’s jetzt so:
$query = ‚select * from tbl_cattable order by catdate asc‘;

kannst du die tabelle nicht verändern (also die zeitspalte nicht einfügen), bleibt dir nur übrig, nach id zu sortieren, was nicht korrekt ist, aber wenigstens ein bissl funktionieren wird.

  • stefan

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

ok, ok, bei mir steht da aber wie in meinem code snippet zusehn select statt insert…einfach ändern?

danke
stephan

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

NEIN!

select und insert sind ein bissl was anderes.

so wie du es da stehen hast, und ich nehme an, du speicherst die zeit NICHT mit, musst du dein code snippet folgendermaßen ändern:

$query2 = „SELECT * From $variable[cattable] ORDER by $variable[cattable].catid ASC“;

für „catid“ setzt du eben den primärschlüssel ein, solange dieser ein „auto_increment“ - wert ist. das sortiert sie nicht zwangsläufig nach einfügedatum, aber höchstwahrscheinlich. ist dieser kein auto_increment, dann vergiss es, und frag jetzt nicht, was auto_increment bedeutet …

willst du wirklich nach dem einfügedatum sortieren … ach, vergiss es …

eien frage noch: hast du die datenbank selbst gebaut, oder war die vorgegeben?

  • stefan