Insert Befehl funktioniert nicht richtig wie er soll!

Begonnen von lit-web, 24. November 2007, 13:09:46

Vorheriges Thema - Nächstes Thema

lit-web

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:
 
 
 
 
 

Taugenichtse die was haben,haben was gegen Habenichtse die was taugen!!!!


lit-web

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

Taugenichtse die was haben,haben was gegen Habenichtse die was taugen!!!!


k00ni

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 /uploads/emoticons/icon_e_wink.gif.3167d127940f44558fbf1ccd9b6d60a9.gif\" alt=\";-)\" />
 
Grüße

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.[/quote]
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.

k00ni

Ich meinte das so, dass im Falle von, dass \"or die\" abgearbeitet wird. Schon klar, dass dies nur bei einem Fehlerfall zustande kommt /uploads/emoticons/icon_e_wink.gif.3167d127940f44558fbf1ccd9b6d60a9.gif\" alt=\";-)\" />

Ich meinte das so, dass im Falle von, dass \"or die\" abgearbeitet wird. Schon klar, dass dies nur bei einem Fehlerfall zustande kommt[/quote]
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.

all your base are belong to us