Probleme mit dem Updaten von Datensätzen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Probleme mit dem Updaten von Datensätzen

    Nabend zusammen,
    Ich bin seit guten 4 Stunden im internet unterwegs um eine lösung für mein Problem zu finden, das ding ist, wenn ich (gleich folgende) sql abfrage über phpmyadmin ausführe klappt alles, soll das script aber über php und mysql_query laufen geht genau garnichts!
    Ich raste hier noch völlig aus :D
    Hier der quelltext, da es um ein schulprojekt geht hoffe ich auf schnelle hilfe :x


    PHP-Quellcode

    1. [syntax="php"]<?phpinclude 'connect.php';
    2. $block = $_POST['block'];$fach = (int)$_POST['fach'];$klasse = (int)$_POST['klasse'];$tag = (int)$_POST['tag'];
    3. echo $klasse;echo $tag;echo $block;echo $fach;
    4. $sql = "UPDATE Stundenplan SET '$block' = '$fach' WHERE Nummer = '$klasse'AND Tag = '$tag';";mysql_query($sql);?>[/syntax]


    Danke im vorraus!

    p.s alle $_POST variablen geben die werte zurück, die sie zurückgeben sollen - da liegt der fehler nicht!

    liebe grüße,
    Timpi

    p.p.s
    sorry hab die formatierung vom quelltext nicht besser mit diesem komischen editor hinbekommen :x
  • Quellcode

    1. <?php
    2. include 'connect.php';
    3. $block = $_POST['block'];
    4. $fach = (int)$_POST['fach'];
    5. $klasse = (int)$_POST['klasse'];
    6. $tag = (int)$_POST['tag'];
    7. echo $klasse;
    8. echo $tag;
    9. echo $block;
    10. echo $fach;
    11. $sql = "UPDATE Stundenplan SET '$block' = '".$fach."' WHERE Nummer = '".$klasse."' AND Tag = '".$tag."';";
    12. mysql_query($sql);
    13. ?>
    Alles anzeigen
  • Laut mysql_error() ein fehler in der sql syntax, die in phpmyadmin aber funktioniert also muss es was mit den variablen zutun haben, nachdem ich $block durch mysql_real_escape_string() gejagt habe sieht die fehlermeldung so aus:

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''Fach1' = '1' WHERE Nummer = '1' AND Tag = '1'' at line 2



    für mich sieht das aber komplett richtig aus oO


    p.s danke fürs quellcode formatieren :)
  • ah, richtig.


    SET '$block' =

    Angenommen $block ist "tabelle", heißt der Befehl SET 'tabelle' = .. Tabellennamen dürfen aber nicht in Hochkommata, sondern nur in Backticks.

    SET `$block` müsste funktionieren.
    Ansonsten lass dir mal über echo $sql; den Befehl mit ausgeben, wie er an die Datenbank geht (also mit eingesetzten Variableninhalten).
    Jan Thurau
    Software and Systems Engineer
    janthurau.de

    [Blockierte Grafik: http://www.pageheroes.com/media/image/pageheroes_logo.png] - We get your page working!
  • 100000 dank, endlich klappt - schonwieder scheitere ich an so einer banalität wie backticks - jetzt klappt alles super, vielen dank nochmal - wenn du mir jetzt noch sagen kannst wieso ich mich hier nicht einloggen kann (irgendeine 5 zeilige fehlermeldung die was von facebook plugin faselt) bist du mein held des tages :D