Biene: Update mit PHP in mysql

Hi! Was mache ich falsch?

$query = "UPDATE table Set spalte = '$eintrag' ";
$update = mysql_query($query);

Dieser Eintrag geht und der folgende nicht(ID stimmt) Aufruf ist: www.hompage.de/aktion.php?id=1

$query = "UPDATE table Set spalte = '$eintrag' WHERE (id = '".$id."')";
$update = mysql_query($query);

  1. Nabend,

    Was mache ich falsch?

    Du sagst nicht, was du mit "der folgende Eintrag geht nicht" meinst und auch nicht, was du bisher für Debug-Versuche unternommen hast.

    $query = "UPDATE table Set spalte = '$eintrag' WHERE (id = '".$id."')";

    echo $query;
    Stimmt so die Query, wie du sie haben möchtest?

    $update = mysql_query($query) or die (mysql_error());

    Lasse dir immer die Mysql-Fehler mit ausgeben.

    Bis denne,

  2. Hallo,

    $query = "UPDATE table Set spalte = '$eintrag' WHERE (id = '".$id."')";

    Lass Dir hier die Query mal anzeigen:
    echo $query;
    Dann siehst Du vielleicht den Fehler.

    Zwei Mutmassungen:

    • die einfachen Anfuehrungszeichen um $id sind ueberfluessig,
        wenn es sich um eine numerische Spalte handelt.
    • $id ist leer.
        Du solltest die Variable sowieso pruefen bzw.
        in eine Ganzzahl umwandeln.
        Und GET-Parameter nicht direkt verwenden - das funktioniert
        nur noch, weil Dein Provider PHP so lasch konfiguriert hat
        (register_globals="on"). Darauf solltest Du nicht zaehlen.
        Schreib stattdessen:
        $id=intval($_GET['id']);

    $update = mysql_query($query);

    Und lass Dir hier die Fehlermeldung anzeigen,
    wenn die Sache nicht erfolgreich war.
    Lies
    http://www.php.net/manual/de/ref.mysql.php
    und nimm Dir ein Beispiel daran!

    Gruesse,

    Thomas

    --
    Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
    Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
    Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/
  3. Hallo,

    $query = "UPDATE table Set spalte = '$eintrag' WHERE (id = '".$id."')";

    Du hast ja die Variable $id sauber mit ".$id." vom String getrennt, aber $eintrag halt nicht. das dürfte einen parse-Error von PHP erzeugen, da PHP $eintrag nicht als Variable vom String trennen kann.

    Folgendes sollte gehen (imme vorausgesetzt, das der Variableninhalt korrekt ist):

    $query = "UPDATE table Set spalte = '${eintrag}' WHERE (id= '${id}')";

    oder die "langform":

    $query = "UPDATE table Set spalte = '".$eintrag."' WHERE (id= '".$id."')";

    Beachte beim ersten Beispiel die korrekte Klammerung der Variablen mit den {} ... also ${id} und nicht {$id} !!!

    Gruß, André