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

  • Minimi
    hat ein Thema erstellt Problem mit WHERE.

    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

  • Minimi
    antwortet
    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

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • Minimi
    antwortet
    Dann kommt die Fehlermeldung, die ich zuvor angegeben habe ...

    MfG,
    Minimi

    Einen Kommentar schreiben:


  • Montellese
    antwortet
    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>";
    }

    Einen Kommentar schreiben:


  • Minimi
    antwortet
    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

    Einen Kommentar schreiben:


  • Montellese
    antwortet
    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).

    Einen Kommentar schreiben:


  • Minimi
    antwortet
    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

    Einen Kommentar schreiben:


  • Montellese
    antwortet
    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.

    Einen Kommentar schreiben:

Lädt...
X