[MySQL 4.1] Werte tauschen

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

  • [MySQL 4.1] Werte tauschen

    AAAARGH !!!
    ich doofer blödpups krieg's einfach nicht gebacken !
    ich hab nen kleines script, welches mir die tabelle unten ausgibt
    dabei hat jede news eine ID

    das sieht so aus:

    PHP-Code:

    ID 
    text 
    ----------
    1  hallo
    2  
    ballo
    3  
    wallo
    4  
    kallo
    5  
    mallo 
    alles werte aus dem feld "text" sind verlingt

    wenn ich jetzt auf hallo klicke, dann soll der eintrag nach unten rutschen und die ID 2 bekommen, ballo soll dann logischer die ID 1 bekommen.

    Wie stelle ich das an ?

    mit update habe ich es nicht hinbekommen.
    Zuletzt geändert von uschi; 25.07.2003, 01:49.

  • #2
    also an ID-felder sollte man gar nichts ändern. die haben nämlich den sinn, dass sie eindeutig zu sein haben.

    was du machen kannst......

    lege eine neue spalte an. nenne sie z.b. DataSort, oder wie auch immer, und vom type INT(11) z.b.

    dort kannst du nun 10, 20, 30 für die sortierung verwenden. also das was du vor hattest.....

    und UPDATE ist schon genau das, was du brauchst. du musst nur vorher MIT SELECT den nachfolgenden wert holen.

    sorieren kannst du übrigens mit ORDER BY


    hth.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      die id is dein primärschlüssel?
      ja?
      finger weg davon

      mach dir ne neue spalte, nenn sie sort und speicher da die sortierreihenfolge der texte

      wenn du auf hallo klickst, übergibst du die 1 aus der id, jetzt kannst die id (und den sort-wert) des eintrags mit dem nächsthöheren sort-wert auslesen und kannst prima tauschen, weil du beide zeilen über ihre id ansprechen kannst
      EDIT:
      ich sollte früher ins bett gehen, dann wär ich jetzt fitter *g*
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        Original geschrieben von mrhappiness
        EDIT:
        ich sollte früher ins bett gehen, dann wär ich jetzt fitter *g*
        OffTopic:
        LOL....
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          OffTopic:
          ich weiß sogar, wer schuld dran is... *g*

          btw: schau mal nochmal auf die seite und sag mir bitte, dass es gringfügigst besser ausschaut
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            also ich hab das in dem beispiel sehr vereinfacht dargestellt.
            ich habe

            ID | titel | text | ... | pos

            allerdings stellt sich mir folgendes problem


            Position der Kategorie die nach unten soll
            -> $pos

            Neue Position der Kategorie
            -> $pos++

            dann mach ich den UPDATE ( den Wert pos um 1 erhöht )

            Position der anderen Kategorie die jetzt den Platz der anderen einnehmen soll
            -> $pos (is ja schon um ein 1 erhöht worden)

            Position die die Kat. nun einnehmen soll
            -> $pos--


            sieht ja ganz nett aus (find ich), aber es funzt nicht...

            da, zweimal auf die gleiche $pos zugegriffen wird.

            versteht mich jemand ?

            Kommentar


            • #7
              Original geschrieben von mrhappiness
              OffTopic:
              ich weiß sogar, wer schuld dran is... *g*
              OffTopic:
              dummididumm......

              OffTopic:
              ich komme mal via mail zu dir....

              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                ja, sogar schon bevor du das geschriebenhast

                daher ja auchder rat eine zusätzliche spalte zu machen, innerhalb derer du die sortierreihenfolge festlegst
                OffTopic:
                ich galub ich will's gar nich mhr wissen *g*
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  ja, die neue spalte heißt (hieß schon immer) "pos"

                  bedeutet soviel wie position :-)

                  Kommentar


                  • #10
                    und du übergibst im link die position oder die id?


                    $erstens=SELECT id,pos FROM tabelle WHERE pos=$pos
                    $zweitens=SELECT id,pos FROM tabelle WHERE pos>$pos LIMIT 1 ORDER BY pos ASC

                    UPDATE tabelle SET pos=$zweitens[pos] WHERE id=$erstens[id]
                    UPDATE tabelle SET pos=$erstens[pos] WHERE id=$zweitens[id]
                    Zuletzt geändert von mrhappiness; 25.07.2003, 07:55.
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Kommentar


                    • #11
                      us, ich hab die ID immer inner mysql_query ausgelesen

                      ich mach's mal so, jetzt wird es auch klappen.

                      danke ! :-)

                      Kommentar


                      • #12
                        also ich komm hier absolut nicht weiter !

                        könnte mir bitte jmd den php code posten ?

                        wäre sehr dankbar !

                        Kommentar


                        • #13
                          poste doch was du schon hast, is ja nich so schwer

                          die sql-anweisungen stehen ja schon da
                          Ich denke, also bin ich. - Einige sind trotzdem...

                          Kommentar


                          • #14
                            Sorry, dass ich alten kram wieder aufleben lasse, aber ich brauche ganau dass und komme voll nicht weiter.

                            Wenn ich nun folgende Anzeige habe:
                            1. Text1 auf/ab
                            2. Text2 auf/ab
                            3. Text3 auf/ab

                            Wie muss ich denn nach deinem Beispiel (happi) den Link AUF resp. AB bestimmen? Bei AUF $pos +1 und bei AB $pos -1??

                            Wenn es dazu noch hilfreiche Beiträge gibt, lasst es mich wissen. Gefunden habe ich icht sehr viel mehr.

                            Danke
                            Figugegu

                            Kommentar


                            • #15
                              Kann mir niemand weiterhelfen?

                              big THX

                              Kommentar

                              Lädt...
                              X