Sortierung dauerhaft speichern - PHP/MySql

tobbimann

Mitglied
Hallo zusammen!

Ich könnte ein paar Denkanstöße gebrauchen, hier mein Problem:

Ich habe eine einfache Tabelle mit den Feldern ID, Datum, Titel, sortierung. Normalerweise wird die Reihenfolge der Datensätze durch das Feld "sortierung" (eine Zahl) bestimmt.

Ich frage nun die Daten z.B. per:
PHP:
$sql = "SELECT * FROM `news` ORDER BY `titel` ASC";
ab.
Die Reihenfolge ist also jetzt nichtmehr gemäß dem Feld sortierung.

Frage: Wie kann ich nun quasi in einem Atemzug (oder zumindest möglichst einfach) erreichen, das die neue Reihenfolge ins Feld "sortierung" übernommen wird?

Danke für eure Antworten.
 
HI,

also du ziehst ja eine row nach der anderen raus via schleife.
Dann hast du ja auch einen "index", nennen wir den mal "i".
Nun kannst du ja bei jedem Schleifendurchgang ein Update machen.

Hier mal ein Beispiel code. Habe ich nur mal schnell gekritzelt. Also nicht wundern wenn er nicht funktioniert ;)
PHP:
$qry = "SELECT * FROM `news` ORDER BY `titel` ASC";  
$id = mysql_query($qry);
$i = 1;
while ($row = mysql_fetch_array($id)){
   //
   // Hier deine weiteren vorgehensweisen
   //
   
   $qry = 'UPDATE `news` SET sortierung = '.$i.' WHERE titel='.$row["titel"].' AND ID='.$row["ID"].' AND Datum='.$row["Datum"];
   mysql_query($qry)
   $i++;
}

Gruss,
MArc
 
Wozu willst du diese Sortierung eigentlich in der Spalte eintragen
Nicht das ich dir dein Vorhaben abspenstig machen will, aber ich sehe nicht den Sinn darin :-(
 
Ich muss mich Svens Gedankengang anschließen, dass dein Vorhaben etwas merkwürdig ist. Reicht es dir nicht die Datensätze anhand des Titels sortieren zu können? Wozu das zusätzliche Sortierungsattribut, wenn doch mit dem Titel dasselbe erreicht werden kann?
 
Bei einer Navigation würde es doch durchaus Sinn machen.
So das der Benutzer selbst die Reihenfolge der ausgabe einstellen kann.
Oder bei einer Rangordnung, überall dort wo man beliebig einstellen kann/soll wie die Reihenfolge sein soll.

MArc
 
Zuletzt bearbeitet:
ja, bloss da reicht es doch, wenn du vom Benutzer Parameter erhältst wie bspw. Sortierrichtung und Spalte, nach der sortiert werden soll.

Hier im Forum kann man auch selbst entscheiden, wie die Ausgabe sortiert wird(Richtung, Forum, Alter etc.)...und du kannst sicher sein, dass da nicht jedes mal die komplette Datenbank umgeschrieben wird :)
 
Hi,

jaaa, das ist schon klar.
Ich meinte auch nicht so eine Sortierung.
Sonder wo man komplett selbstfestlegen kann, welcher record an erster stelle, welcher an zweiter stelle usw. stehen soll.
Fand das Beispiel mit der Navigation ganz passend.
 
Naja....das ist ja was anderes..das würde schon Sinn machen.
Bedenke allerdings, dass du dann für jeden User eine Extra Spalte anlegen musst, und die muss jedes mal, wenn etwas in der DB dazukommt geändert werden...für alle User.

Sinn macht es allerdings nicht, die Sortierung nach Spalte/Richtung nochmals in der DB zu vermerken...das weiss die DB auch ohne die Nummerierung :)
 
Hallo!

Die Reihenfolge in der Datenbank ist doch völlig schnuppe..... sieht ja eh niemand.
Und wenn Du die Reihenfolge nach nach "sortierung" ausgeben willst, warum machst Du dann nicht einfach ein ORDER BY 'sortierung'?

Gruss Dr Dau
 
Hi,

also um das mal aufzuklären. Mir ist klar, das es nicht unbedingt Sinn macht und das es viele andere Wege gibt.

Das Ganze war allerdings eine Aufgabe, die das dauerhafte speichern vorraussetzt.

Und wenn es hier nicht so warm wäre, hätte ich wahrscheinlich auch dran gedacht, das ich ja eh durch die DB-Abfrage schon eine Schleife habe, die ich nur etwas erweitern muss. :rolleyes:

nochmals Danke für eure Hilfe/Beteiligung!
 
Zurück