Ankündigung

Einklappen
Keine Ankündigung bisher.

Update Funktion!

Einklappen

Neue Werbung 2019

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

  • Update Funktion!

    Hallo!

    Ich bin fast am verzweifeln bei einer einfachen Updaten-Funktion:

    Bei diesem Code update ich zwar das Tabellenfeld text, allerdings in allen Datensätzen, nicht nur in den der durch die id geändert werden soll.

    PHP-Code:
    <? $update = mysql_query("UPDATE ladys SET text = '$text' WHERE id LIKE '%$id1%'"); ?>
    Die Variable id1 wird zuvor durch eine anderen Seite mittels POST weitergegeben.

    PHP-Code:
    $id1 $_POST[id]; 
    Kann mir jemand helfen wo mein Fehler liegt? Ist denk ich mal ein dummer Anfängerfehler, aber trotzdem danke schon einmal im vorraus.

    MFG

    Madenar

  • #2
    LIKE wird für unscharfe Suchen verwendet. Nutze stattdessen
    Code:
    WHERE `id` = 3
    .
    Code:
    $id1 = $_POST[id];
    ist Käse.
    PHP-Code:
    $id1 $_POST['id']; 
    ist korrekt.
    [URL]http://hallophp.de[/URL]

    Kommentar


    • #3
      Dein $id1 ist warscheinlich leer.

      In dem Fall wird mit LIKE und den Wildcards wohl alles geupdated...

      Außerdem solltest du auf SQL Injections achten.
      "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

      Kommentar


      • #4
        PHP-Code:
        WHERE id '$id1' 
        wobei ich glaub das man die einfachen Anführungszeichen gar nich brauch

        Kommentar


        • #5
          Zitat von pidaman Beitrag anzeigen
          PHP-Code:
          WHERE id '$id1' 
          Falsch.


          http://php.de/wiki-php/index.php/Cod...ng:Code-Smells
          [COLOR="#F5F5FF"]--[/COLOR]
          [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
          [COLOR="#F5F5FF"]
          --[/COLOR]

          Kommentar


          • #6
            ok sry

            Kommentar


            • #7
              Sorry, ich habe Blödfug erzählt. War noch in der Denkschleife von oben ($_POST['id']). Im Query ist das natürlich tital in Ordnung. Ob $sort2 ohne Anführungszeichen funzt, wage ich jetzt aber mal zu bezweifeln.
              [COLOR="#F5F5FF"]--[/COLOR]
              [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
              [COLOR="#F5F5FF"]
              --[/COLOR]

              Kommentar


              • #8
                PHP-Code:
                <? $update = mysql_query("UPDATE ladys SET text = '$text' WHERE id LIKE '%$id1%'"); ?>
                Die Variable id1 wird zuvor durch eine anderen Seite mittels POST weitergegeben.
                Dann kann dir jemand die komplette Tebelle mit Unsinn überschreiben indem er irgendeinen text mit einer Schleife von id=1 bis id=100000 durchlaufen lässt und dir dann 100.000 UPDATES unterjubelt.
                [PHP]if ($var != 0) {
                $var = 0;
                }[/PHP]

                Kommentar


                • #9
                  Hallo nochmal

                  und danke für eure Antworten. Allerdings aktualisiert er den entsprechenden in der ID eindeutigen Datensatz immer noch nicht. Ersetze ich allerdings die ID1-Variable durch die in der DB angegebnen Nummer z.B. 12, (z.B.
                  PHP-Code:
                   Where id '12'"; 
                  ) aktualisiert er diesen (die id ist also nicht leer). der Variablen werden auch korrekt übergeben, ich kann diese duch echo ausgeben. Zum besseren Verständniss habe ich hier noch einmal den gesamten Code angehangen.

                  PHP-Code:
                  <? include "connect.php"; 

                    $id1 = $_POST['id'];
                    $text = $_POST['text']; 

                    $update = mysql_query("UPDATE ladys SET text = '".$text."' WHERE id ='" .$id1. "' ");
                    
                  ?>
                  Ich hoffe mir kann jemand helfen, denn egal was ich versuche, das Update über die ID-Variable in der Where-Abfrage bringt kein Ergebniss, also das dementsprechende Feld Text wird nicht geupdatet. Danke für eure Bemühungen.

                  Madenar

                  Kommentar


                  • #10
                    Zitat von Madenar76 Beitrag anzeigen
                    Ersetze ich allerdings die ID1-Variable durch die in der DB angegebnen Nummer z.B. 12, (z.B.
                    PHP-Code:
                     Where id '12'"; 
                    ) aktualisiert er diesen (die id ist also nicht leer)
                    Was ist das denn für ne Logik?

                    Mit Variable geht es nicht, mit festem Wert geht es, also stimmt der wert der Variablen?

                    var_dump($id1); gibt was aus?
                    "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

                    Kommentar


                    • #11
                      Dein Skript ist immernoch anfaellig fuer SQL-Injections. Mach dich dahingehend einmal schlau.
                      "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

                      Kommentar

                      Lädt...
                      X