Jump to content
Sign in to follow this  
lit-web

Insert Befehl funktioniert nicht richtig wie er soll!

Recommended Posts

Hallo @ all!


Ich habe ein Problem wo ich nicht weis wie ich das beheben und lösen soll. habe schon im Forum selbst gesucht aber nichts dazu gefunden.

Ich will mit Insert Into einen Eintrag machen,es sendet auch was in die Datenbank und zeigt mir das ein Eintrag vorhanden ist,nur wenn ich dann kontrolliere steht in der Datenbank in der id ein Wert nur in dem dazugehörigen Feld steht nicht das was ich im Formular eingegeben habe,sondern das Feld ist leer.


Ich sende den Code mal mit. Danke für Hilfe!

 

Zurück
";
}
else
{
mysql_query("Insert Into $tab_prob (prob1)
							VALUES ('$plz')")or die (mysql_error());
header("Location: index.php");
mysql_close();
}
}
?>



" name="schicken" method="post">

Name:















Share this post


Link to post
Share on other sites

Ok alles Io hat sich erledigt habe den Fehler gefunden,habe vergessen der Variablen $plz den Wert zu zu weisen. Sieht jetzt so aus bevor die Abfrage beginnt


$plz=$_POST['plz']


Somit hat die Variable einen Wert und wird auch eingetragen

Share this post


Link to post
Share on other sites

Mahlzeit,


also folgender Code ist schon sinnfrei.

 

or die (mysql_error());
   header("Location: index.php");
   mysql_close(); 

 

Das "or die" killt dir dein Skript und bricht mit einem mysql_error () ab. Das header und mysql_close wird nicht abgearbeitet, also kann auch weggelassen werden.


Vermeide dieses "or die"! Schreibe da lieber ein

 

try 
{
mysql_query ();
...
}
catch (Exception)
{
mysql_close ();
echo mysql_error ();
}

 




UPDATE: Hast es ja schon gelöst. Dann kannste das nachfolgende überlesen.


Zu deinem Problem:

 

mysql_query("Insert Into $tab_prob (prob1)
                               VALUES ('$plz')")

 

Du hast in deinem Formular als Übertragungsart POST gewähllt. Also musst du oben auch dies berücksichtigen, wenn du die Variable in den Query einträgst. Schaue dir mal $_POST an. Du versuchst gerade mittels "register_globals" zu arbeiten ;-)



Grüße

Share this post


Link to post
Share on other sites
Guest
Das "or die" killt dir dein Skript und bricht mit einem mysql_error () ab. Das header und mysql_close wird nicht abgearbeitet, also kann auch weggelassen werden.

Unsinn. die() bricht nur ab, wenn mysql_query() 0 oder false zurückliefert (was durchaus möglich ist). Ansonsten wird die Weiterleitung ausgeführt. mysql_close() ist zumindest an dieser Stelle meist tatsächlich sinnfrei - nur wenn bereits Ausgaben an den Browser geschickt wurden und kein Output Buffering verwendet wird, wird mysql_close() ausgeführt werden. Als edukative Maßnahme würde ich litter aber trotzdessen empfehlen, Ressourcen immer selbst zu schließen.

Share this post


Link to post
Share on other sites

Ich meinte das so, dass im Falle von, dass "or die" abgearbeitet wird. Schon klar, dass dies nur bei einem Fehlerfall zustande kommt ;-)

Share this post


Link to post
Share on other sites
Guest
Ich meinte das so, dass im Falle von, dass "or die" abgearbeitet wird. Schon klar, dass dies nur bei einem Fehlerfall zustande kommt

Dies ändert nichts daran, dass es einen Ausführungszweig gibt, bei dessen Abarbeitung die beiden Befehle regulär ausgeführt werden würden. Die beiden Funktionsaufrufe sind demnach nicht überflüssig (mit den von mir genannten Einschränkungen), auch wenn es keinen die-Call geben würde. Irgendwo muss der User dann ja zur index.php weitergeleitet werden.


litter:

HTTP verlangt, dass bei Weiterleitungen mit Location-Angabe immer eine absolute, vollständige Adresse, keine relative, angegeben werden muss. User Agenten (wie Browser) sind nicht verpflichtet, solchen Angaben korrekt zu folgen.

Share this post


Link to post
Share on other sites
Guest
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×