• Hilfe, sitz jetzt schon seit tagen an dem Problem.
    Ich möchte drei Datensätze in einer Datenbank Aktualisieren. Ich hab nur keinen Schimmer wie ich das schreiben soll das es funktioniert. Hier mal mein letzter Versuch.


    <?php
    }

    if(isset($_GET["page"])) {
    if($_GET["page"] == "2") {
    $user = $_SESSION["username"];
    $geschlecht = $_POST['geschlecht'];
    $alter = $_POST['alter'];
    $gewicht = $_POST['gewicht'];

    $fehler = 0;


    $verbindung = mysql_connect("localhost","xxxxxxxx","xxxxxxx")
    or die ("Keine Rückmeldung der Datenbank...");

    mysql_select_db("xxxxxxxx")
    or die ("Verbindung mit Datenbank nicht möglich");
    $control = 0;
    $abfrage = "SELECT user FROM assidaten WHERE user = '$user'";
    $ergebnis = mysql_query($abfrage);
    while($row = mysql_fetch_object($ergebnis))
    {

    $control++;

    }


    if ($fehler != 1){

    $eintrag = "UPDATE assidaten SET geschlecht = ' " . $geschlecht . " ' , alter = ' " . $alter . " ' , gewicht = ' " . $gewicht . " ' WHERE user = ' " . $user . " ' "

    $eintragen = mysql_query($eintrag);

    if ($eintragen == true) {

    echo "Du hast Deine Daten gespeichert...";

    }else{
    echo "unbekannter Fehler im System bitte versuche es nochmal...";

    }
    mysql_close($verbindung);
    }
    }
    }

    ?>


    ich glaube das Problem liegt in der Art wie ich die Variablen in den UPDATE befehl eingebaut habe.
    Ich hab auch schon versucht es so zuschreiben :

    $eintrag = "UPDATE assidaten SET geschlecht = '$geschlecht' , alter = '$alter' , gewicht = '$gewicht' WHERE user = '$user' ";

    geht auch net.
    Habt Ihr ne Lösung ?

    ich denke mein problem leigt nur darin das ich nicht genau weis wie ich es schreiben muss wenn ich mehrere datensätzen updaten möcht.
    ich hab es getestet mit nur einem datensatz :


    <?php
    }

    if(isset($_GET["page"])) {
    if($_GET["page"] == "2") {
    $user = $_SESSION["username"];
    $motto = $_POST["motto"];
    $fehler = 0;


    $verbindung = mysql_connect("localhost","xxxxxxx","xxxxxxxx")
    or die ("Keine Rückmeldung der Datenbank...");

    mysql_select_db("xxxxxxxx")
    or die ("Verbindung mit Datenbank nicht möglich");
    $control = 0;
    $abfrage = "SELECT user FROM assidaten WHERE user = '$user'";
    $ergebnis = mysql_query($abfrage);
    while($row = mysql_fetch_object($ergebnis))
    {

    $control++;

    }


    if ($fehler != 1){

    $eintrag = "UPDATE assidaten Set motto = '$motto' WHERE user = '$user'";

    $eintragen = mysql_query($eintrag);

    if ($eintragen == true) {

    echo "Du hast Dein Motto gespeichert...";

    }else{
    echo "unbekannter Fehler im System bitte versuche es nochmal...";

    }
    mysql_close($verbindung);
    }
    }
    }

    ?>


    das fuktioniert einwandfrei. nur eben wenn ich mehrere datensätze mit dem UPDATE SET befehl übertragen möchte dann gehts nicht.

  • Also das ist das aus den mehrfachen Datensätzen:

    Code
    $eintrag = "UPDATE assidaten SET geschlecht = ' " . $geschlecht . " ' , alter = ' " . $alter . " ' , gewicht = ' " . $gewicht . " ' WHERE user = ' " . $user . " ' ";

    das das aus dem einzelnen Update:

    Code
    $eintrag = "UPDATE assidaten Set motto = '$motto' WHERE user = '$user'";

    Die beiden Queries schauen normal aus, also an denen direkt wird es wohl nicht liegen. Was steht denn in den Variablen, also ist da das drinnen, was Du denkst?

    Schon mal ein echo vor die Query gesetzt und sich diese angeschaut ??
    schon mal die Fehler ausgeben lassen mit "echo mysql_error();" direkt nach der Zeile mit dem mysql_query() ??


    Äm, nachfragen tuen muss...

    Zitat

    Ich möchte drei Datensätze in einer Datenbank Aktualisieren.


    Möchtest Du drei Datensätze updaten oder drei Spalten? Die erste Query führt ein Update über drei Spalten durch.

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Edit spricht...

    Keine Ahnung ob das nun ein Fehler im Script ist oder ein Fehler vom Kopieren.

    hier

    Code
    $eintrag = "UPDATE assidaten SET geschlecht = ' " . $geschlecht . " ' , alter = ' " . $alter . " ' , gewicht = ' " . $gewicht . " ' WHERE user = ' " . $user . " ' "


    fehlt ein Semikolon am Ende.

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Edit ist noch was ins gesprungen....

    Du verwendet in der Query, und zwar in beiden die nicht gehen, den Spaltennamen "alter". "alter" ist aber eine geschützte Bezeichnung von mysql!
    *** Link veraltet ***

    Pack Dein alter mal in schräge Anführungszeichen, also als `alter` Wichtig, die nach links fallenden, nicht die nach rechts und auch nicht die geraden!

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • JUHUUU !!!! es funktioniert !
    Vielen Dank für Eure Hilfe.

    Ich habe einfach aus $alter , $leben gemacht und es geht. Auf die Idee das "alter" ein geschützter name ist bin ich nicht gekommen. Dumm von mir und echt ärgerlich da ich ne Woche rumprobiert hab.
    Vielen Dank. Jetzt muß ich nurnoch rausfinden wie ich meinen Code hier im Forum nicht so unprofessionell reinschreibe.