Sortierung in DB ändern?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sortierung in DB ändern?

    Moin,

    ich habe eine Datenbank mit den Feldern:

    group_id, group_name, group_pos

    Die Ausgabe wird nach dem Feld group_pos sortiert. Das ganze läuft nach dem Prinzip: Kleinste Zahl nach oben.

    Ich würde jetzt ganz gern per Script die Position des jeweiligen Datensatzes ändern indem ich irgendwo auf "nach oben" klicke. Das Script soll dann die jeweiligen Datensätze in der Datenbank ändert.

    Wie kann man soetwas umsetzen? Ich habe da irgendwie gar keine Idee.

    Dank im voraus,
    Paddy

  • #2
    Abfragen ob es die 1. Position ist, wenn nicht, die Position des "darüberliegenden" Datensatzes -1 und die Position des Datensatzes der verschoben werden soll +1
    die hummel ist ein sinnloses tier ohne zukunft!

    Kommentar


    • #3
      Re: Sortierung in DB ändern?

      Dazu brauchst du eigentlich nur die Funktion mysql_query("UPDATE .... blablubb");

      Wenn du auf den Link "nach Oben" klickst, übergibst du einfach die group_id und die group_pos und schreibst einfach bei der entsprechenden id "group_pos-1" rein ... dann nimmst du den Datensatz, der im Moment die Position hat, die der Neue nun bekommen soll, und setzt hier "group_pos+1"

      Voilà

      ---

      edit: *grmpf* zu spät .. naja, zweimal is besser als keinmal
      [color=red]Geht nicht[/color] ist keine Fehlermeldung

      Kommentar


      • #4
        beim klick die position + id mitgeben ....

        nach oben:
        - der vorstehende datensatz bekommt die pos des aktuellen
        - der aktuelle die aktuelle pos-1

        nacht unten:
        - der nachfolgende datensatz bekommt die pos des aktuellen
        - der aktuelle die aktuelle pos+1
        Kissolino.com

        Kommentar


        • #5
          Original geschrieben von Wurzel
          beim klick die position + id mitgeben ....

          nach oben:
          - der vorstehende datensatz bekommt die pos des aktuellen
          - der aktuelle die aktuelle pos-1
          stimmt, bei meinem posting wirds nach unten verschoben
          die hummel ist ein sinnloses tier ohne zukunft!

          Kommentar


          • #6
            Original geschrieben von dispositor
            stimmt, bei meinem posting wirds nach unten verschoben
            naja .. wir wissen ja alle wie's gemeint war
            [color=red]Geht nicht[/color] ist keine Fehlermeldung

            Kommentar


            • #7
              Re: Re: Sortierung in DB ändern?

              Original geschrieben von Wuzel
              nach oben:
              - der vorstehende datensatz bekommt die pos des aktuellen
              - der aktuelle die aktuelle pos-1

              nacht unten:
              - der nachfolgende datensatz bekommt die pos des aktuellen
              - der aktuelle die aktuelle pos+1
              Das ist nicht schlecht, nur wie setze ich das mit PHP um???

              Kommentar


              • #8
                http://php-resource.de/forum/showthr...ieren%20Update
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  So, ich habe jetzt hoffentlich eine vernünftige Lösung: Der Link "nach oben" übergiebt die aktuelle "group_pos" und die Richtung, in die es gehen soll.

                  PHP-Code:
                        if($do == 'up')
                            {
                            
                  $akt_group_pos_p $akt_group_pos 1;
                            
                  $akt_group_pos_m $akt_group_pos 1;
                            
                            
                  $abfrage "UPDATE price_group SET group_pos = '0' WHERE group_pos = '$akt_group_pos_m'";
                            
                  mysql_query($abfrage);
                            echo 
                  "$abfrage<br><br>";

                            
                  $abfrage "UPDATE price_group SET group_pos = '$akt_group_pos_m' WHERE group_pos = '$akt_group_pos'";
                            
                  mysql_query($abfrage2);
                            echo 
                  "$abfrage<br><br>";

                            
                  $abfrage "UPDATE price_group SET group_pos = '$akt_group_pos' WHERE group_pos = '0'";
                            
                  mysql_query($abfrage);
                            echo 
                  "$abfrage<br><br>";
                            } 
                  Leider funktioniert das ganze nur halb... Der Erste und der Letzte Schritt werden wunder bar ausgeführt, der zweite kommischer Weise nicht. Kann mir jemand helfen?

                  Kommentar


                  • #10
                    was steht denn in $akt_group_pos?

                    ich seh da nur $akt_group_pos_m und $akt_group_pos_p
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Kommentar


                    • #11
                      Code:
                      $abfrage = "UPDATE price_group SET group_pos = '$akt_group_pos_m' WHERE group_pos = '$akt_group_pos'";
                      mysql_query($abfrage[b]2[/b]);
                      [color=red]Geht nicht[/color] ist keine Fehlermeldung

                      Kommentar


                      • #12
                        Original geschrieben von mrhappiness
                        was steht denn in $akt_group_pos?

                        ich seh da nur $akt_group_pos_m und $akt_group_pos_p
                        Da drin steht die aktuelle Position des Datensatzes (Wird vom Script mit übergeben).

                        Kommentar


                        • #13
                          hab falsch geraten, sollte wohl mal besser lesen *g*

                          der Big Chief hat da durchaus recht
                          Ich denke, also bin ich. - Einige sind trotzdem...

                          Kommentar


                          • #14
                            Yeah ... besser als mrhappiness ... wie geh ich denn ab
                            [color=red]Geht nicht[/color] ist keine Fehlermeldung

                            Kommentar


                            • #15
                              Und ich habe schon ein Brille - Ich danke Euch!

                              Kommentar

                              Lädt...
                              X