PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [SQL] Order By - Problem



blacky123
30.08.2010, 21:59
Da ich mir die Crons nach meinen Wünschen per ID sortiere sollten die auch in der Datenbank, und viel wichtiger, dadurch auch im Adminforce nach der ID sortiert sein.
Folgenden Befehl wollte ich eigentlich anwenden, da er diese Aufgabe erledigen sollte, und teilweise auch erledigt.


select id from vms_crons order by id;

Nach der Eingabe in phpmyadmin sehe ich auch die ID's der Reihe nach sortiert, nur das ist in der vms_crons Tabelle danach leider nicht der Fall, und daraus folgend auch im Adminforce nicht.
Mache ich hier irgendwo einen Denkfehler oder vergesse zu speichern?
Ist zur Übersicht für mich eigentlich ziemlich wichtig.

Grüße
Blacky

Holstenjungs
30.08.2010, 22:03
Du sortierst mit dem Befehl die Ausgabe, nicht die gespeicherten Daten. Mit anderen Worten veränderst du nicht die Daten in der Datenbank damit. Eine Sortierung ist bei den Daten nicht nötig, das erledigt MySQL bei einer Abfrage mit "ORDER BY" selber. Die Daten bleiben aber immer in der selben Reihenfolge gespeichert.

blacky123
30.08.2010, 22:27
Ich hatte aber früher einmal eine lösung dafür.
Muss doch irgendwie gehn, dass die die Crons nach aufsteigender ID (1-xx) sortieren kann.
Bzw. das ich wenn ich einen neuen Cron eintrage, oder die ID eines alten Ändere, dass er dann an die richtige Stelle sortiert wird. Ginge etwas in der Richtung?

Grüße

Holstenjungs
30.08.2010, 22:33
Du musst unterscheiden zwischen Eintrag in die Datenbank und der Ausgabe. Wenn du etwas in einer Tabelle hinzufügst, wird es immer am Ende eingefügt, unerheblich was du da eingibst. Das siehst du, wenn du dir einfach nur die Tabelle mal in phpMyAdmin anzeigen lässt.
Um eine Ausgabe nach ID zu sortieren gibt es genau diese ORDER BY Funktion. Willst du allerdings, dass eine Tabelle von Anfang an sortiert ist, dann musst du sie löschen, neu erstellen und alle Einträge nach der ID sortiert nacheinander einfügen. Das mag sinnig sein, wenn eine Tabelle viele Einträge hat, weil du dir dann im SQL-Befehl die ORDER BY Zugabe sparst, aber bei wenigen Einträgen lohnt sich das nicht.

blacky123
30.08.2010, 22:38
Ich hoffe du hast meinen ersten Post gelesen.
Und ich unterscheide zwischen Eintrag in die Datenbank und der Ausgabe.
Aber mal ne andere Frage.

Lässt sich der Order by - Befehl im Adminforce so einrichten, dass die Crons nach der ID gelistet werden?

Punscha
30.08.2010, 22:55
nimms mal den hier

$crons = db_query("SELECT * FROM ".$db_prefix."_crons ORDER BY id ASC");da hast du die kleinste id oben
wenn du die größte oben haben willst also den neusten cron statt ASC dann DESC nehmen...
das solltest du im adminforce in der datei abändern... datenbank ist ia egal wie die da verstreut sind

Holstenjungs
30.08.2010, 22:56
Ja, öffne einfach die "adminforce/content/interfacedaten/crons.php" und suche folgendes:
$crons = db_query("SELECT * FROM ".$db_prefix."_crons");ersetze es hiermit:
$crons = db_query("SELECT * FROM ".$db_prefix."_crons ORDER BY id ASC");

blacky123
30.08.2010, 22:59
Ah, super. Dank euch.

Hier kann dann geschlossen werden.

DimpleX
30.08.2010, 23:03
naja nicht unbedingt Closed, kann ja sein das es Newbies gibt die noch fragen haben


MfG
DimpleX

blacky123
30.08.2010, 23:07
naja nicht unbedingt Closed, kann ja sein das es Newbies gibt die noch fragen haben


MfG
DimpleX

dachte nur, dass es eigentlich grob keine fragen dazu mehr geben sollte ^^
steht nämlich alles super hier :yes: