CONCAT Problem

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

  • CONCAT Problem

    Hallo,

    habe folgendes Problem:

    PHP-Code:
    mysql_query("UPDATE regel SET zahl = CONCAT(zahl,'$nummer',',')"); 
    klappt alles wunderbar.

    Ich habe eine Listbox mit zwei Buttons (Löschen u. Hinzufügen) Hinzufügen klappt mit o.g. Query, aber wie lösche ich das nun?

    Ich habe auch da eine Listbox mit Zahlen, die man anklicken kann, z.B. die 5.

    In der Tabelle stehen dann Zahlen wie 4,7,12,34,5,12... und ich möchte das nur die 5 gelöscht wird. (Jede Zahl soll auch nur einmal auftauchen).

    Hoffe mir kann jemand helfen. Bin schon am verzweifeln, oder ich stehe gerade auf dem Schlauch.


    PHP-Code:
    mysql_query("DELETE from regel WHERE zahl = CONCAT(zahl,'$nummer',',')"); 
    hat jedenfalls nicht geklappt. Wieso?

    Danke!

    Emily

  • #2
    gibs denn bei MySQL auch REPLACE
    wenn ja, ist es dein Freund.

    Kommentar


    • #3
      hast du dir dein DELETE mal ausgeben lassen?
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        Ooops

        Sorry, habe erst jetzt gemerkt das ich unter PHP gepostet habe. Beitrag kann geschlossen werden.

        Ps: REPLACE war es aber nicht was ich suche, ich möchte ja nur einen Teil raus löschen und nicht alles komplett. Trotzdem danke!

        Kommentar


        • #5
          *verschieb*

          hast du dir dein DELETE jetzt mal ausgeben lassen?
          was steht da?
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            hm

            Als Fehlermeldung nichts, und wenn ich es in Phpmyadmin kopiere, findet er nichts, also machen tut er nix, Fehlermeldung kommt auch keine.

            Kommentar


            • #7
              PHP-Code:
              echo $sql="DELETE from regel WHERE zahl = CONCAT(zahl,'$nummer',',')";
              mysql_query($sql); 
              ausgabe?
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                Re: Ooops

                Original geschrieben von Emily537
                Sorry, habe erst jetzt gemerkt das ich unter PHP gepostet habe. Beitrag kann geschlossen werden.

                Ps: REPLACE war es aber nicht was ich suche, ich möchte ja [color=red]nur einen Teil raus löschen[/color] und nicht alles komplett. Trotzdem danke!
                genau deswegen soll REPLACE dir helfen, schon mal an

                update tblTable set colName = replace(colName,'whatyouwant','') where ...

                gedacht. Wenn Löschen angesagt ist, muss ja nicht gleich DELETE zum Einsatz kommen, gell

                Kommentar


                • #9
                  Ausgabe

                  Ausgabe von $sql

                  PHP-Code:
                  DELETE from regel WHERE zahl CONCAT(zahl,'5',','

                  Kommentar


                  • #10
                    Re: Ausgabe

                    Original geschrieben von Emily537
                    Ausgabe von $sql

                    PHP-Code:
                    DELETE from regel WHERE zahl CONCAT(zahl,'5',','
                    wird die Bedingung jemals true?

                    Kommentar


                    • #11
                      schon mal dran gedacht dass deine where klausel nicht greifen kann ?

                      also du hast zahlen: 4,7,12,34,5,12

                      jetzt prüft er der reihe nach ob zahl + 5 + ,
                      4 = 45, ? noe
                      7 = 75, ? auch ned ..
                      12 = 125, ? glaub kaum ..
                      34 != 345, .. 5 != 55, .. 12 != 125,

                      kann er nix finden ..
                      mfg,
                      [color=#0080c0]Coragon[/color]

                      Kommentar


                      • #12
                        OK

                        Problem gelöst mit:

                        $query ="UPDATE regel SET zahl = IF(FIND_IN_SET('$nummer',zahl)=1, TRIM(LEADING '$nummer,' FROM zahl), REPLACE(zahl, SUBSTRING_INDEX(zahl, ',', FIND_IN_SET('$nummer',zahl)), SUBSTRING_INDEX(zahl, ',', FIND_IN_SET('$nummer',zahl)-1))) WHERE FIND_IN_SET('$nummer',zahl)";


                        Nun habe ich aber ein weiteres Problem :-(

                        Da weiss ich aber noch nicht mal einen Ansatz.


                        ich weiss gerade nicht wie ich diese Zahlen miteinander vergleichen könnte. Habe eine Tabelle:

                        pid pzahl
                        1 12
                        2 0
                        3 3
                        4 23
                        . .
                        . .
                        . .

                        eine 2te Tabelle lautet:

                        rid rzahl
                        1 ,3,0,5,23,34
                        2 ,2,23,33,1,4
                        .
                        .
                        .


                        Nun möchte ich pzahl mit rzahl vergleichen, also wenn rzahl in pzahl vorkommt, schreib Treffer, jemand einen Tip für mich, wie ich diese beiden Zahlenkombinationen vergleichen kann?

                        Danke!

                        Kommentar


                        • #13
                          mir IF kommst du eh zurecht ..
                          guck dir noch IN() an .. und nen join wirst noch brauchen ..
                          mfg,
                          [color=#0080c0]Coragon[/color]

                          Kommentar

                          Lädt...
                          X