Daten werden nicht in DB geschrieben

MajotPayne

Grünschnabel
Hallo Leute,
ich habe aus einem Tut ein einfaches Formular mit Daten an eine Datenbank übergeben. Eine laufende Nummerierung und 2 Formularfelder.
Ich bekomme auch die Meldung das alles in die DB übernommen wurde. Allerdings wird nur der Autowert der laufenden Nummerierung übernommen. Die 2 Datenfelder bleiben leer :( Ich hoffe Ihr könnt mir auf die Schnelle helfen. Hier mal der Auszug aus dem Code:

PHP:
$dbverbindung = mysql_connect ($host, $user, $password);

$dbanfrage = "INSERT into $tabelle values ('0', '$Array[header]', '$Array[artikel]')";

if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung)) {
print ("Datenbankeintrag erfolgreich.");
} else {
print ("Es traten Probleme auf.");
}
mysql_close ($dbverbindung);

?>

Merci schon mal......
 
mmh..
Schreib mal in den Code nach $dbanfrage = .....

echo "<br/>" . $dbanfrage . "<br/>";

Somit siehst du, was PHP an MySQL übergibt.

MfG
Philipp9494
 
Guten Morgen...
also die Ausgabe sieht wie folgt aus:

INSERT into nennung2010 values ('0', '', '')
Aus der Null macht die DB die laufende Nummer..das klappt auch prima, aber wieso werden die Daten php-Seitig net übergeben ?


Die eingabedatei sieht folgendermaßen aus: (weis net ob das weiter hilft?)

<form action="work.php" method=post>
Überschrift <br>
<input type=text name="Array[header]" size= 50>
<br>
<br>
Artikel<textarea name="Array[artikel]" row=5 cols=40></textarea>
<br>
<br>
<input type=submit name="SUBMIT" value="ok">
</form>
</body>
</html>

Es gibt doch da noch die $post-Methode ? Ich bin ja eher ein grünschnabel in Sachen php..... bin für jeden Tipp dankbar...
 
Zuletzt bearbeitet:
mmh.. ich glaub ich weiß schon, wie du dein Problem lösen kannst..

Hier mal der HTML-Code:
Code:
<form action="work.php" method=post>
Überschrift <br>
<input type=text name="header" size= 50>
<br>
<br>
Artikel<textarea name="artikel" row=5 cols=40></textarea>
<br>
<br>
<input type=submit name="SUBMIT" value="ok">
</form>

und hier der PHP-Code:

PHP:
$dbverbindung = mysql_connect ($host, $user, $password);

$dbanfrage = "INSERT into $tabelle values ('0', '" . $_POST["header"]. "', '" . $_POST["artikel"] . "')";

if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung)) {
print ("Datenbankeintrag erfolgreich.");
} else {
print ("Es traten Probleme auf.");
}
mysql_close ($dbverbindung);

du hast zwar die Werte an das PHP-Script übergeben, aber sie nicht ausgelesen..
Hier mal ein Link zu POST:
http://www.w3schools.com/php/php_post.asp

MfG
Philipp9494
 
Zuletzt bearbeitet:
*kopfschüttel* merci für den Tipp...... klappt jedoch auch net.... Die Felder header und artikel bleiben leer, die ID wird jedoch aufnummeriert :(

aumann.....
 
könntest du mir noch mal den Wert von $dbanfrage geben?

Was auch immer sehr gut bei DB-Problemen hilft? (zumindest bei mir :)) sie in php-MyAdmin ausführen..
dort sind die Fehlermeldungen etwas detailierter :)
 
Moin moin also ich habe mir das ganze mal angeschaut und


Falsch:
<form action="work.php" method=post>
Richtig
<form action="work.php" method="post">

somit konnten diese werte schonmal nicht Übergeben werden man solte übrigens alle Tag erweiterungen (erweiterungen="") in "" schreiben da manch ein Browser es sonst Falsch verstehen könnte.

Also würde ich es mal mit
Code:
<form action="work.php" method="post">
Überschrift <br>
<input type=text name="header" size="50">
<br>
<br>
Artikel<textarea name="artikel" row="5" cols="40"></textarea>
<br>
<br>
<input type=submit name="submit" value="ok">
</form>

vll liegt ja da der Hase begraben.

und wenn du den Wert ID in der Datenbank nicht übermittelst so wird er bei der Setzung von autoincrement selbstlaufend gezählt daran könnte es ebenfalls scheitern um dies zu vermeiden solltest du für die ID keinen Wert mit übergeben.

und ein korrekter INSERT währe für die DB
Code:
$dbanfrage = "INSERT INTO $tabelle (Spalte1, Spalte2) VALUES ('".$_POST["header"]. "', '".$_POST["artikel"]."')";

Spalte1 und Spalte2 stehen jeweils für die spalten in der Tabelle also bitte noch ändern und niemals vergessen du musst ihm auch sagen wo was hinsoll und das machst du mit "(Spaltenname1, Spaltenname2) VALUES ('Spalte1', 'Spalte2')";

Hoffe es hilft soweit

MFG
FDS-Ultimate
 
Zuletzt bearbeitet:
mhh, habe nochmal alles neu geschrieben und Deine Zeilen rüber kopiert ..... t :)
Warum es immer eben net geklappt hat ..... vllt ein Fippptehler den ich übershen hab ?
Ich verbeuge mich und danke Dir vielmals für die schnelle kompetente Hilfe :D
 
ups hat sich wohl überschnitten...

Also :
Code:
<form action="work.php" method=post>
so stehts aktuell drin und es funktioniert. Kann es da evtl. probleme mit verschiedenen Browsern geben ?

Die DBanfrage steht aktuell folgend:
Code:
$dbanfrage = "INSERT into $tabelle values ('0', '" . $_POST["header"]. "', '" . $_POST["artikel"] . "')";

und es klappt ebenso. :rolleyes:
 
Nichts ist Unnmöglich^^

ich würde schon auf eine Korrekte Syntax im HTML Code achten, da es einige Browser einen Recht übel nehmen können vorallem wenn man mit alten Browsern arbeitedt.

Und zudem habe ich dir jeweils die Korrekte Syntax gegeben wenn das Problem anderweitig auch korrekt ableuft hast du dein gewünschtes ergebeniss doch erreicht :-) sind halt die erfahrungen die ich gemacht habe, das es bei großen Script konstrukten besser ist alles genau zu Deklarieren.
 
Zuletzt bearbeitet:
Zurück