[PHP] Einträge in MySQL-Datenbank sortieren

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Mirak, 12. Dezember 2010 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 12. Dezember 2010
    Einträge in MySQL-Datenbank sortieren

    Hey Jungs

    Ich habe ein logisches Probleme und bräuchte vllt etwas. Pseudo-Code von euch.

    Ich habe meine Einträge in einer DB nach id geordnet, also id = 1, 2, 3, 4 usw. Weil mir ein paar Einträge nicht gepasst haben, habe ich einiges davon wieder gelöscht, also sieht das ganze jetzt so aus: id = 1, 4, 7, 9 etc. pp. Das ist auch nicht schlimm, weil einfach alle Einträge nach der Reihe ausgelesen werden.

    Mein Problem: Ich will im Admin-Bereich meiner Seite die Einträge sortieren/verschieben. Also der 5. Eintrag (egal welche id) soll an die 2. Stelle (egal welche id). Eintrag 2 soll an die dritte Stelle rutschen, Eintrag 3 an die vierte Stelle.

    Eigentlich ist es egal, welche IDs die Einträge danach habem. Aus 1, 4, 7, 9 kann auch gerne 1, 2, 3, 4 werden.

    Danke, greetz Mirak
     
  2. 12. Dezember 2010
    AW: Einträge in MySQL-Datenbank sortieren

    Einträge abfragen und in ein Array packen, da dann ordnen (in deinem Fall tauschen der Einträge) und dann so per SQL festlegen?
     
  3. 12. Dezember 2010
    AW: Einträge in MySQL-Datenbank sortieren

    Hallo Mirak,

    in einer Tabelle direkt in der Datenbank sortiert man normalerweise nicht. Man baut Abfragen, in denen man das Ergebnis sortiert. Sortieren in Ergebnissen ist jeweils nach einer oder mehreren Spalten möglich.

    Beispiel: Du hast eine Tabelle "Personen" mit 3 Spalten: Id, Nachname, Vorname. Die Tabelle ist wie folgt befüllt:
    Code:
    Id Nachname Vorname 
    --------------------
    01 Zuse Hans
    02 Gammel Franz
    03 Eddisson Eduard
    04 Kanra Kamil
    05 Rischer Ingo
    Führst Du nun Abfragen (SELECT) auf die Tabelle ab, kannst Du die Daten mit der Order By Anweisung sortieren

    Code:
    SELECT * FROM Personen ORDER BY Nachname
    ergibt:
    Code:
    03 Eddisson Eduard
    02 Gammel Franz
    04 Kanra Kamil
    05 Rischer Ingo
    01 Zuse Hans
    
    Willst Du mehrere Spalten nacheinander sortieren, gibts Du die Spaltennamen kommasepariert im Order By Statement an.

    Des Weiteren kann man auch sogenannte Views (Sichten) erstellen. Das sind im Prinzip Tabellen, die readonly sind. Ein View hat ein Statement als Grundlage und listet Dir die Daten dann nach dem Statement. In Views kann man auch sortieren.

    Hoffe das hilft
    MaxDev

    EDIT: Willst Du auf einer Webseite sortieren ? Oder im PHP Code ? Oder in der Datenbank ?

    Für den Fall der Webseite: Du könntest per Javascript Zeilen einer Tabelle verschieben, indem Du den HTML Quelltext der Tabelle änderst (beziehungsweise sortierst). In der Row könnten sich dann Hidden Fields mit Id und Rank befinden, die Du im PHP Code dann ausliest.

    Für den Fall des PHP Codes stimme ich TerraNova zu.
     
  4. 13. Dezember 2010
    AW: Einträge in MySQL-Datenbank sortieren

    Wenn ich dein Problem richtig verstanden habe, dann willst du deine Einträge unabhängig von den IDs sortieren, die aufsteigend, aber nicht konsistent sind. Falls dein Wissen ausreicht, dann würde ich einen weitere Spalte einfügen, in der du jeweils die Position deines Eintrags speicherst. Diese kannst du dann nach belieben ändern. Dann gibst du dir die Daten aus, sortiert nach Position und du bist fertig.

    greez
     
  5. 13. Dezember 2010
    AW: Einträge in MySQL-Datenbank sortieren

    Vllt hilft dir ja das: Select-ausgabezeilen automatisch nummerieren - Forumarchiv - phpforum.de das deutsche PHP-Forum. Hier finden Sie alles über PHP, MySQL, ASP, JSP,Linux, Apache ...
     
  6. 14. Dezember 2010
    AW: Einträge in MySQL-Datenbank sortieren

    Einfach eine Spalte "order" hinzufügen und dort eintragen, an welcher Position ein Eintrag sein soll.
    Geht auch mit ner weiteren Tabelle und via Join
     
  7. 14. Dezember 2010
    AW: Einträge in MySQL-Datenbank sortieren

    du kannst einfach ein neues Feld anlegen z.B. ordering, wenn du die Liste soriert hast z.B. mit JQuery kannst du jedes Element nacheinander durchgehen und das Feld ordering jeweils mit +1 hochzählen
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.