Huhu
Hab mal eine Frage:
Ich habe irgend ein Menu. Z.B:
- Home
- Links
- Gästebuch
- Diverses
Diese Menupunkte sind in MySQL gespeichert. Jetzt sollte man irgendwie die ganzen Einträge sortieren können, d.h. der Admin könnte zum Beispiel beim Menupunkt "Gästebuch" auf nen Pfeil "aufwärts" klicken und dann würde das Menu später so aussehen:
- Home
- Gästebuch
- Links
- Diverses
Jetzt hab ich mir gedacht, ich füge einfach in der DB ein neue Spalte ein z.B. SortierID. "Home" hätte dann die ID 1, "Gästebuch" die 2 usw. So kann ich beim auslesen einfach nach dieser ID sortieren.
Ich habe aber gerade keine gute Idee, wie ich den Code programmieren soll, der ausgeführt werden soll, wenn einer auf den Pfeil klickt.
Gibt es da in PHP oder MYSQL eine Funktion, welche irgendwie die SortID automatisch neu ordnet?
Oder könnte man die Dinger in ein Array speichern und dann mit einer bestimmten Funktion ein Datensatz "rausschneiden" und weiter vorne wieder einfügen und dass ganze wieder in der DB eintragen?
Irgendwie komme ich einfach auf keine gute Idee, wie man das lösen könnte. Ich brauch von euch nicht den ganzen Code! Nur irgend ein Anhaltspunkt oder einen Namen einer Funktion.
viele Grüsse
Ankündigung
Einklappen
Keine Ankündigung bisher.
[Erledigt] kleines Menu erstellen
Einklappen
Neue Werbung 2019
Einklappen
X
-
[Erledigt] kleines Menu erstellen
Stichworte: -
-
Ein Gast antworteteIch hab schon gedacht, dass es einfach geht. Darum habe ich ja hier rein geschrieben.
Ich habe mir das irgendwie immer falsch vorgestellt. Ich dachte immer, dass man ja dann die ID aller Elemente ändern muss. Aber in Wirklichkeit muss man es ja nur beim verdrängten und beim anderen Element ändern!
Ach bin ich blöd!
Dankeschön und gute Nacht
Stefan
-
Hallo "stimhof".
Na, wenn du ausschließen kannst, dass mehrere Admins gleichzeitig dran arbeiten, dann ist das wahrscheinlich viel einfacher, als du es dir gerade zurechtdenkst. Bei deinem Beispiel oben wäre die Adresse hinter dem Pleil, das Gästebuch eins "hochzuklicken" vielleicht ?id=guestbook&action=move_up. Jetzt liest du einfach die Tabelle ein (id + die Sortierspalte), kommst so auf die (alte) Sortiernummer des Gästebuch-Datensatzes. Hier prüfst du, ob ein Verschieben nach oben überhaupt noch möglich ist (ggf. könnte ja auch möglich sein, dass das oberste Element, wenn es hochgeschoben wird, ganz unten auf der Liste "rauskommt"). Je nach dem, hast du dann einen Fehler oder den neunen Platz rausbekommen. Jatzt vertauscht du einfach die Sortiernummern der beiden Elemente - das zu verschiebende und das auf dem neunen Platz.
Also etwas so:
Datensatz-ID des zu verschiebenden Elementes sei ID
Tabelle nach E einlesen (Elemente)
Wenn nach_oben m=1, wenn nach unten m=-1
Alter_Platz = E.ID.Sortiernummer
Neuer_Platz = Alter_Platz+m
Wenn m>Elemente.Anzahl-1 Neuer_Platz=0
Wenn m<0 Neuer_Platz=Element.Anzahl-1
Verdrängtes_Element = Das Element, dass bis jetzt noch auf Neuer_Platz sitzt
Elemente.ID.Sortiernummer = Neuer_Platz
Elemente.verdrängtes_Element.Sortiernumme = Alter_Platz
Es führen natürlich viele Wege nach Rom.
Basti
Einen Kommentar schreiben:
Einen Kommentar schreiben: