Ankündigung

Einklappen
Keine Ankündigung bisher.

mysql problem: mysql update wird nicht ausgeführt

Einklappen

Neue Werbung 2019

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

  • mysql problem: mysql update wird nicht ausgeführt

    Nabend community,
    bei meinem skript werden alle daten in eine db geschrieben, die antworten in die tabelle forum_ant und die beiträge in forum.

    Die zelle "laspost" stellt immer den letzen beitrag da und soll per update geupdatet werden. Er tut es aber net! Hier mal der code: (was kann der fehler sein? Weiter unten ist das Prob mit dem Update, der rest läuft super!)


    PHP-Code:
    <?php
    $threadid
    =$HTTP_POST_VARS['threadid'];
    $id=$HTTP_POST_VARS['forums_id'];
    $cat_id=$HTTP_POST_VARS['cat_id'];
    $user=$HTTP_POST_VARS['user'];
    $mail=$HTTP_POST_VARS['mail'];
    $thema=$HTTP_POST_VARS['thema'];
    $text=$HTTP_POST_VARS['text'];
    //Zuerst Datum und Uhrzeit generieren:
    $punkt=".";
    $dpunkt=":";
    $uhrzeit="Uhr";
    $um "um";
    $datum date("d");
    $datum .=$punkt;
    $datum .=date("m");
    $datum .=$punkt;
    $datum .=date("Y");
    $zeit date("G");
    $zeit .=$dpunkt;
    $zeit .=date("i");
    $zeit .=$uhrzeit;
    $all "$zeit";

    //Sonderzeichen beachten:
    $user=htmlspecialchars ($user);
    $user=htmlentities($user);
    $betreff=htmlspecialchars ($thema);
    $betreff=htmlentities($thema);
    $text=htmlspecialchars ($text);
    $text=htmlentities($text);
    $text=nl2br($text);

    //Antwort in die DB schreiben:
    include("config.inc.php");
    $db=mysql_connect("$host","$user","$pw")
    or die (
    "[b]Zur Zeit kein Connect zum Datenbankserver![/b]");
    mysql_select_db("$dba")
    or die (
    "[b]Datenbank konnte nicht angesprochen werden[/b]");
    $anfrage="INSERT INTO forum_ant (cat_id, beitrags_id, user, email, datum, uhrzeit, betreff, beitragstext, antwort) VALUES ('$cat_id','$threadid','BLA','$mail','$datum','$zeit','$thema','$text','true')";
    mysql_query($anfrage)
    or die (
    "[b]Fehler bei der Datenbankanfrage: [/b]".mysql_error());
    //Datum updaten
    $anfrage2="SELECT * FROM forum WHERE beitrags_id = '$threadid'";
    $ergebnis2=mysql_query($anfrage2);
    while(
    $row2 mysql_fetch_array($ergebnis2))
    {
    $update "UPDATE forum Set lastpost = '$all' WHERE lastpost = '$row2[laspost]'";
    $write mysql_query($update);
    }
    //Mögliche Fehler ausgeben lassen mit mysql_errno
    //echo "

    ";
    //echo mysql_errno() . "
    " . mysql_error() . "n";
    //Um die ERNO Funktion zu aktivieren, einfach die "
    //" davor entfernen
    mysql_close($db);
    print (
    "

    Vielen Dank f&uuml;r Ihren Beitrag!</p>"
    );
    print (
    "[url='index.php?site=forum']Zur&uuml;ck zum Forums&uuml;berblick[/url]");
    ?>


  • #2
    Dein Schreibfehler "laspost". Versuch doch mal Fehler durch backtracking selbst zu finden.
    Ein UPDATE funktioniert nicht? Lass dir den SQL-Befehl so ausgeben, wie er an mysql_query geschickt wird, also mit interpretierten PHP Variablen.
    Das geht? Dann prüf die Bedingung, gib den SQL-Befehl am besten in phpMyAdmin ein..

    Deine Fragerei wirkt sonst irgendwie kindisch und faul, da du einfach selbst an die Lösung kommen kannst.

    Kommentar


    • #3
      naja.. faul wohl eher net, aber was genau meinst du mit backtracking?

      Kommentar


      • #4
        In einem anderen Thread ist dir dies geschrieben worden:

        Btw. $HTTP_*_VARS ist veraltet. Verwende lieber $_GET und $_POST.

        Warum ignorierst du das?

        Und hältst du Zeilen mit über 200 Zeichen für lesbar und warum rückst du deinen Quellcode nicht ordentlich ein?

        Richtig debuggen
        1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
        2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
        3. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
        4. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
        5. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
        6. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
        7. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

        Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt, was eigentlich selbstverständlich sein sollte.

        Gruß
        phpfan

        Kommentar


        • #5
          @schmiddy:

          Du bist offenbar doch ein fauler Mensch:
          Übersetzung für "backtracking"


          Da von dir keine Initiative oder eigene Lösungsideen kommen werde ich
          Fragen von dir zukünftig nicht mehr beantworten, es sei denn du beweist in
          der Fragestellung etwas mehr Engagement.

          Du willst doch etwas von uns, nicht umgekehrt. Herrje.

          Kommentar

          Lädt...
          X