eingabeprobleme und einfügeprobleme beim übertragen?

uwee

Erfahrenes Mitglied
Hallo an alle!

ich befasse mich schon seit längerem mit PHP und MySQL und habe schon abfragen der kompliziertesten art nach langem hinbekommen, hab aber jetzt was gefunden, an dem ich mir die zähne ausbeiße...
EINGABEN:
ich hab eine Formular, in das ich alle Felder eingaben kann, die eingaben werden an eine weitere datei gegeben, die die tabelle mit den informationen versorgen soll...
problem:
es taucht zwar ein neuer datensatz auf, aber NUR die ID (die festgelegt ist (unsigned not null)) taucht auf, die restlichen felder bleiben leer...

hier einmal der quelltext:
Code:
<?php
$mysqluser	="";
$mysqlpasswd	="";
$mysqlhost	="";
$mysqldbname	="";
$connname = @mysql_connect($mysqlhost, $mysqluser, $mysqlpasswd);
if ($connname) {
mysql_select_db($mysqldbname);
}
else{
echo"<html><head>
<title>No connection...</title></head><body>
<p>Keine Verbindung zur Datenbank möglich...</p>
</body></html>";
exit();
}
$ein_name=($_POST['name']);
$ein_orig=($_POST['orig']);
$ein_jahr=($_POST['jahr']);
$ein_vers=($_POST['version']);
$ein_art=($_POST['art']);
$ein_anza=($_POST['anzahl']);
$ein_zust=($_POST['zustand']);
$sql="";
$result="";
if ($name!=""){
echo"<p>Der Film mit dem Namen <i>",
($name), "</i> wurde soeben der Datenbank hinzugefügt. danke für den Eintrag!</p>\n";
$sql="INSERT INTO dvd_uebersicht(name,original_name,jahr,version,art,anzahl,zustand) 
VALUES('$ein_name','$ein_orig','$ein_jahr','$ein_vers','$ein_art','$ein_anza','$ein_zust')";
}
echo $sql;
$result=mysql_query($sql);
?>
wenn auf eingeben geklickt wurde, habe ich festgelegt, das die syntax angezeigt werden soll, das ergebnis sieht so aus:

INSERT INTO dvd_uebersicht(name,original_name,jahr,version,art,anzahl,zustand) VALUES('','','','','','','')

aber nichts steht drin... die id läuft brav weiter, und das datum sit statt dem eingegebenen auf 2000 fest...

könnt ihr mir sagen, wo mein fehler liegt?

Edit vom Mod: Bitte achte auf deine Daten, vorallem auf die deiner DB, die muss nicht jeder kennen.
 
Versuchs mal damit
PHP:
$sql="INSERT INTO dvd_uebersicht(name,original_name,jahr,version,art,anzahl,zustand) 
VALUES('".$ein_name."','".$ein_orig."','".$ein_jahr."','".$ein_vers."','".$ein_art."','".$ein_anza."','".$ein_zust."')";
 
Nimm sonst mal die Klammern bei der Definition deiner Variablen weg:

änder mal ...
PHP:
$ein_name=($_POST['name']);
$ein_orig=($_POST['orig']);
$ein_jahr=($_POST['jahr']);
$ein_vers=($_POST['version']);
$ein_art=($_POST['art']);
$ein_anza=($_POST['anzahl']);
$ein_zust=($_POST['zustand']);

ab in...

PHP:
$ein_name=$_POST['name'];
$ein_orig=$_POST['orig'];
$ein_jahr=$_POST['jahr'];
$ein_vers=$_POST['version'];
$ein_art=$_POST['art'];
$ein_anza=$_POST['anzahl'];
$ein_zust=$_POST['zustand');
 
Code:
INSERT INTO dvd_uebersicht(name,original_name,jahr,version,art,anzahl,zustand) VALUES('','','','','','','')

hab ich auch schon ausprobiert...

wenn ichmcih nciht irre, müsste in diesem teil:
Code:
VALUES('','','','','','','')
statt den '' die Daten stehen, oder
 
Original geschrieben von uwee
Code:
INSERT INTO dvd_uebersicht(name,original_name,jahr,version,art,anzahl,zustand) VALUES('','','','','','','')


hab ich auch schon ausprobiert...

wenn ichmcih nciht irre, müsste in diesem teil:
Code:
VALUES('','','','','','','')

statt den '' die Daten stehen, oder
Ja, aber in Anführungsstrichen, daher meinte ich '".$bla."',...
mal ein Beispiel von mir:
PHP:
//...
$name = $_POST['name'];
$text = $_POST['text'];
//...
$insert = "insert into content (name,text) values ('".$name."','".$text."')";
 
btw: danke fürs wegnehmen der daten... das pw war geändert und die zahlen hinter den user zufällig erstellt, aber ich werds demnächst löschen....
 
ja, aber das ergebnis bleibt das gleiche, als würde er nichts zum übertragen haben...
aber das ist ja quatsch, weil doch ein neuer datensatz erstellt wird, und NUR wenn der name NICHT leer ist, wird übertragen. zudem steh ich vor dem rätsel, warum er das datum trotzdem auf 2000 reinstellt?!
 
Original geschrieben von uwee
ja, aber das ergebnis bleibt das gleiche, als würde er nichts zum übertragen haben...
aber das ist ja quatsch, weil doch ein neuer datensatz erstellt wird, und NUR wenn der name NICHT leer ist, wird übertragen. zudem steh ich vor dem rätsel, warum er das datum trotzdem auf 2000 reinstellt?!
1. Halte dich an unsere Netiquette, in kurzform steht es auch in dem roten Kasten über [Antworten]..

2. Zeig mal dein Formular

3. Schreib mal ans Ende
PHP:
echo $_POST['name'];
und guck ob was übergeben wird.
 
kleiner test und es wird sichtbar: er scheint irgendwie die daten nciht zu bekommen:

INSERT INTO dvd_uebersicht(name,original_name,jahr,version,art,anzahl,zustand) VALUES('test','','','','','','')

wenn ich folgendes ersetzt habe:

Code:
$sql="INSERT INTO dvd_uebersicht(name,original_name,jahr,version,art,anzahl,zustand) 
VALUES('test','".$ein_orig."','".$ein_jahr."','".$ein_vers."','".$ein_art."','".$ein_anza."','".$ein_zust."')";
'test'
 
Okay, ich werd drauf achten...

also Quelltext für das Formular:

Code:
<html>
<head>
<title>EINGABE</title>
</head>
<body>
<br><br>
<form metod="post" action="eingabe_fertig.php">
<p>Geben Sie alle nötigen Informationen zum Film an:</p>
<table border=0 cellpading=2>
<tr><td>Name:</td><td>			<input name="name" size="0" mxLength="20"></input></td></tr>
<tr><td>Original-Name:</td><td>		<input name="orig" size="0" mxLength="20"></input></td></tr>
<tr><td>Jahr:</td><td>			<input name="jahr" size="0" mxLength="20"></input></td></tr>
<tr><td>Version:</td><td>		<input name="version" size="0" mxLength="20"></input></td></tr>
<tr><td>Art des Mediums:</td><td>	<input name="art" size="0" mxLength="20"></input></td></tr>
<tr><td>Anzahl der Medien:</td><td>	<input name="anzahl" size="0" mxLength="20"></input></td></tr>
<tr><td>Zustand:</td><td>		<input name="zustand" size="0" mxLength="20"></input></td></tr>
</table>
<input type="submit" value="Eingeben" name="eingeben"></input>
<input type="reset" value="Eingaben löschen" name="loeschen"></input>
</form>
<a href=index.html>zurück<a>
</body>
</html>
 
Zurück