Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit WHERE

Einklappen

Neue Werbung 2019

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

  • Problem mit WHERE

    Hallo zusammen,
    ich habe ein Problem. Ich ändere meine MySQL Daten per Browser, aber leider treten dabei Fehler auf.

    PHP-Code:
         <?php
               $sql1_post 
    "SELECT id, first_post, user, Content, Time FROM threads WHERE
    id = '
    $getAnhang'";
      
    $result_post mysql_query($sql1_post);
      while (
    $aktiv_row_post mysql_fetch_assoc($result_post)) {
      
    $sql1_user "SELECT user, userpic, timestamp, wohnort FROM userlogin WHERE user = '$aktiv_row_post[user]'";
      
    $result_user mysql_query($sql1_user);
      while (
    $aktiv_row_user mysql_fetch_assoc($result_user)) {
      echo 
    "<form name='form' method='post' action='edit_thread.php'>";
      echo 
    "Titel: <input name='Content' value='$aktiv_row_post[Content]' type='text'><br>";
      echo 
    "Text: <br> <textarea name='first_post' rows='10' cols='50'>$aktiv_row_post[first_post]</textarea>";
      echo 
    "<input type='submit' value='Eintragen' name='submit'>";
      echo 
    "</form>";
      echo 
    "$getAnhang";
      }
      }
      if (!empty(
    $_POST["submit"])) {
      
    $getAnhang $test;
    $aendern "UPDATE threads Set Content = '$_POST[Content]', first_post='$_POST[first_post]' WHERE id = '$getAnhang'";
    if (
    mysql_query($aendern)) {
      echo 
    "<p>Dateneingabe erfolgreich!</p>";
    } else {
      echo 
    "<p>Dateneingabe nicht erfolgreich!</p>";
    }
    }
      
    ?>
    Das Problem liegt bei "$getAnhang". Das habe ich schon getestet, aber ich weiß nicht wieso und wie ich diesen Fehler beheben kann.

    Zum genauen Problem: Wenn ich auf Submit klicke, dann passiert gar nichts in der DB (mit diesem Code). Aber wenn ich das
    PHP-Code:
    $getAnhang 
    durch z.B. 2 ersetze, dann ändern sich die Daten.

    Wieso das und wie kann ich das beheben?

    Danke!
    Minimi

    PS: Das $getAnhang ist die Variable für die Zeichen nach der Dateiurl und dem "?". Z.b. test.php?dies-ist-die-variable

  • #2
    Ich verstehe nicht ganz, was die Zeile
    PHP-Code:
    $getAnhang $text
    sein soll, da ich nirgendwo eine Variable $test finden kann. Wenn das eine Variable ist, die per GET übergeben wird, solltest du es vielleicht mal mit $_GET['test'] versuchen bzw man sollte es sowieso immer so machen. Register globals sind out!
    Kannst du vielleicht mal noch posten, wo du $getAnhang einen Wert zuweist, da das nirgendwo (ausser am Schluss) in deinem Code-Ausschnitt vorkommt, die Variable aber schon vorher mehrmals verwendet wird.
    Füge deinem UPDATE-Query mal noch
    PHP-Code:
    mysql_query(....) or die(mysql_error()) 
    an, dann erfährst du vielleicht mehr über das Problem.

    Kommentar


    • #3
      Hallo,
      Hier wird $getAnhang definiert:
      PHP-Code:
      if (isset($_SERVER['QUERY_STRING'])) {
        
      $getAnhang trim($_SERVER['QUERY_STRING']);
      }
      $muster "|^[a-zA-Z0-9_-]+$|";
      if (
      preg_match($muster$getAnhang) == 0) {
        
      $getAnhang ereg_replace(" ""-"$getAnhang);

      $text wird danach nochmal verwendet. Habe ja nur einen Codeteil angegeben.

      Füge deinem UPDATE-Query mal noch
      PHP-Code:
      mysql_query(....) or die(mysql_error())

      an, dann erfährst du vielleicht mehr über das Problem.
      Also: wenn ich das mache dann kommt:
      Code:
      Parse error: syntax error, unexpected T_LOGICAL_OR in /mnt/web5/41/03/51675703/htdocs/Forum_FAKE/edit_thread.php on line 73
      MfG

      Kommentar


      • #4
        Hm du kannst das or die(....) nicht in deine if-Schleife reinschreiben. Wenn du das benutzen willst, musst du den Query vorher ausführen und den Rückgabewert speichern und den danach überprüfen, sonst kommt genau so ein unexpected T_LOGICAL_OR, wenn du das ins if() reinschreibst (nehme mal an, dass du das gemacht hast).

        Kommentar


        • #5
          Hallo,
          ich habe es jetzt auch mit $_GET probiert, aber leider ohne Erfolg

          Hm du kannst das or die(....) nicht in deine if-Schleife reinschreiben. Wenn du das benutzen willst, musst du den Query vorher ausführen und den Rückgabewert speichern und den danach überprüfen, sonst kommt genau so ein unexpected T_LOGICAL_OR, wenn du das ins if() reinschreibst (nehme mal an, dass du das gemacht hast).
          Ja, habe ich. Ich habe es bei dem
          PHP-Code:
            if (!empty($_POST["submit"])) {
            
          $getAnhang $test;
          $aendern "UPDATE threads Set Content = '$_POST[Content]', first_post='$_POST[first_post]' WHERE id = '$getAnhang'";
          if (
          mysql_query($aendern)) {
            echo 
          "<p>Dateneingabe erfolgreich!</p>";
          } else {
            echo 
          "<p>Dateneingabe nicht erfolgreich!</p>";
          }

          eingefügt.

          MfG,
          Minimi

          Kommentar


          • #6
            Und was passiert, wenn du den Query vor dem if ausführst (mit dem or die(...)), den Rückgabewert in eine Variable speicherst und dann diese Variable per if überprüfst? Kommt dann eine Fehlermeldung?

            Also so meine ich das:
            PHP-Code:
            if (!empty($_POST["submit"])) {
              
            $getAnhang $test;
            $aendern mysql_query("UPDATE threads Set Content = '$_POST[Content]', first_post='$_POST[first_post]' WHERE id = '$getAnhang'") or die(mysql_error());
            if (
            $aendern) {
              echo 
            "<p>Dateneingabe erfolgreich!</p>";
            } else {
              echo 
            "<p>Dateneingabe nicht erfolgreich!</p>";
            }

            Kommentar


            • #7
              Dann kommt die Fehlermeldung, die ich zuvor angegeben habe ...

              MfG,
              Minimi

              Kommentar


              • #8
                Du wirst wohl irgendwo in den ersten 73 Zeilen eine Zeichenkette nicht richtig abgeschlossen haben.

                Kommentar


                • #9
                  ja, das kann schon sein, aber ich finde ja leider den Fehler nicht. Sogar wenn ich es mit $_GET mache funktioniert es nicht. Und wenn ich dann bei WHERE id = '1' eingebe, dann funktioniert es auf einmal

                  Minimi

                  Kommentar

                  Lädt...
                  X