Variablen werden in MYSQL nicht eingetragen.

WACSF

Erfahrenes Mitglied
Guten Abend allerseits.

Ich habe ein Formular, in dem der User allerlei eingeben kann. Diese Variablen gebe ich an eine weitere Seite mit POST weiter. Dort habe ich die Variablen mit echo $name ausgelesen und alle wurden einwandfrei übergeben.
Nun sollen diese Variablen eingetragen werden. Dies mache ich über mysql_query.

PHP:
<?php
  include ("dbconnect.php");
  
  $name = $HTTP_POST_VARS["name"];
  $passwort = $HTTP_POST_VARS["passwort"];
  $email = $HTTP_POST_VARS["email"];
  $homepage = $HTTP_POST_VARS["homepage"];
  $persoinfo = $HTTP_POST_VARS["persoinfo"];

$eintrag = "INSERT INTO memberlist (ID, name, passwort, email,
homepage, persoinfo, bildurl) VALUES ('', '$name', '$passwort',
'$email', '$homepage','$persoinfo', 'lol')";
  
$eintragen = mysql_query($eintrag);
   ?>
Mein Problem ist relativ simpel. Es wird nichts in die Tabelle geschrieben. Ich habe meine dbconnect.php überprüft, aber alles einwandfrei. Ich selber habe auch keinen Fehler in der Syntax gefunden. Vielleicht könnt ihr mir sagen, wieso das Script nicht funktioniert.

Vielleicht ist es für euch noch interessant, wie meine SQL-Tabelle aufgebaut ist:
PHP:
$querry =   	"CREATE TABLE $tabelle_2 (
  				ID int(5) NOT NULL auto_increment,
  				NAME varchar(30) NOT NULL default '',
  				PASSWORT varchar(10) NOT NULL default '',
  				EMAIL varchar(30) NOT NULL default '',
  				HOMEPAGE varchar(150) NOT NULL default '',
  				BESCHREIBUNG varchar(250) NOT NULL default '',
				BILDURL varchar(250) NOT NULL default '',
  				PRIMARY KEY  (ID)
				) TYPE=MyISAM";

Ich hoffe Ihr könnt mir helfen, zudem hoffe ich, dass ich die Netiquette einhalte.

Schönen Dank schonmal,

WACSF
 
is relativ simpel, so wie ich das sehe :-)

name!=NAME
passwort!=PASSWORT

Na fällt was auf?

Im Klartext - in deinem Query sollten schon deine Spaltennamen genauso benannt werden wie in der Tabelle auch!

cu shutdown
 
Du musst Variablen, die in Singlequotes stehen "aus dem String befreien", ansonsten werden die Varialbn,und nicht deren Wert eingetragen.
Das geht wie foglt:

PHP:
$eintrag = "INSERT INTO memberlist (ID, name, passwort, email,
homepage, persoinfo, bildurl) VALUES ('', '".$name."', '".$passwort."',
'".$email."', '".$homepage."','".$persoinfo."', 'lol')";

Natürlich sollte auch o.g. beachtet werden.

Sollte es immer noch nciht gehen,lässt du dir den Eintrag ausgeben (echo $eintrag; ) und schaust, welche Variablen leer sind.
 
Hallo nochmal und herzlichen Dank.

Ich habe jetzt alles gemacht, wie ihr es gesagt habt.
Das echo $eintrag; zeigt mir, dass alle Variablen eingesetzt werden.
Also im Prinzip funktioniert anscheinend alles bis auf den Eintrag selbst.
Kann das an den Einstellunden der MYSQL Datenbank liegen?

Schönen Dank nochmal,

WACSF
 
entferne mal den Leereintrag für die ID

da die sowieso auf auto-increment steht ist das überflüssig

vielleicht liegt hier ein Konflikt vor
 
Du sollest mal dein mysql_query($eintrag); Statement um eine OR die(mysql_error()) Klausel ergänzen.
Dann siehst du auch ob und wo es dort Konflikte gibt, da dir dies bei einem Fehler den entsprechenden Fehlertext zurückliefert.
Ist dir das nicht genau genug,versuche mal diesen Query in phpmyAdmin einzugeben,dort gibt es oft ausführlichere Fehlermeldungen.

PHP:
mysql_query($eintrag) OR die(mysql_error());
 
Ich weiß nicht, ob das zu Sache beiträgt, nur kann ich es euch ja mal zeigen. Mein Formular beinhaltet auch einen Dateiupload, den ich noch nicht bearbeitet habe ( da werde ich noch was basteln). Zudem habe ich in diesem Forum ein JAVA Script gefunden, welches ich auch integriert habe.

PHP:
<script language="javascript">
  var tmpVAR="";
  var ObjTag=document.getElementById;
  
  function SetInterval()
  	{
		  window.setTimeout("showImage()",1000);
	}
  
  function showImage()
  	{ 
		
		  if(ObjTag("cover").value!=="" && ObjTag("cover").value!==tmpVAR)
			    { 
					tmpVAR=ObjTag("cover").value;
				    ObjTag("IMG_cover").src=ObjTag("cover").value;
			    }
		SetInterval();
			
	}

</script>

   
<form enctype="multipart/form-data" action="member_einstellenconfirm.php" target="mainFrame" method="post">
  <div align="center">
    <table width="579" border="0" cellspacing="0" cellpadding="0">
       <tr>
         <td width="19" height="19" background="icons/eckelinksoben.gif">&nbsp;</td>
         <td width="547" bgcolor="AE0000">&nbsp;</td>
         <td width="19" height="19" background="icons/eckerechtsoben.gif">&nbsp;</td>
       </tr>
       <tr>
         <td width="19" height="19" bgcolor="AE0000">&nbsp;</td>
         <td><table width="100%"  border="0" cellspacing="0" cellpadding="0">
           <tr>
             <td width="46%">Bitte gebe Deinen Namen ein: </td>
             <td width="54%"><input name="name" type="text" id="name" size="40"></td>
           </tr>
           <tr>
             <td>Dein Passwort: </td>
             <td><input name="passwort" type="text" id="passwort" size="40"></td>
           </tr>
           <tr>
             <td>Deine Emailadresse: </td>
             <td><input name="email" type="text" id="email" size="40"></td>
           </tr>
           <tr>
             <td>Hast Du eine Homepage? </td>
             <td><input name="homepage" type="text" id="homepage" size="40"></td>
           </tr>
           <tr>
             <td>&nbsp;</td>
             <td>&nbsp;</td>
           </tr>
           <tr>
             <td>Hier kannst Du Dich kurz beschreiben:</td>
             <td><textarea name="persoinfo" cols="36" rows="4" id="persoinfo"></textarea></td>
           </tr>
           <tr>
             <td>Bitte w&auml;hle ein Bild von Dir aus: </td>
             <td><input name="file" type="file" size="50" width="80" height="80">
               <br>
               <span class="Stil1">Bitte beachte, dass Dein Bild max. 80x80 Pixel gro&szlig; sein darf.</span></td>
           </tr>
         </table></td>
         <td width="19" height="19" bgcolor="AE0000">&nbsp;</td>
       </tr>
       <tr>
         <td width="19" height="19" background="icons/eckelicksunten.gif">&nbsp;</td>
         <td bgcolor="AE0000">&nbsp;</td>
         <td width="19" height="19" background="icons/eckerechtsunten.gif">&nbsp;</td>
       </tr>
    </table>
     <table width="579" border="0" cellspacing="0" cellpadding="0">
       <tr>
         <td width="265">&nbsp;</td>
         <td width="17" bgcolor="AE0000">&nbsp;</td>
         <td width="297">&nbsp;</td>
       </tr>
       <tr>
         <td>&nbsp;</td>
         <td bgcolor="AE0000">&nbsp;</td>
         <td>&nbsp;</td>
       </tr>
    </table>
     <table width="579" border="0" cellpadding="0" cellspacing="0">
       <tr>
         <td>&nbsp;</td>
         <td background="icons/eckelinksoben.gif">&nbsp;</td>
         <td bgcolor="AE0000">&nbsp;</td>
         <td background="icons/eckerechtsoben.gif">&nbsp;</td>
         <td>&nbsp;</td>
       </tr>
       <tr>
         <td width="211">&nbsp;</td>
         <td width="19" bgcolor="AE0000">&nbsp;</td>
         <td width="80"><img src="" alt="" width="80" height="80" id="IMG_cover"></td>
         <td width="19" bgcolor="AE0000">&nbsp;</td>
         <td width="246">&nbsp;</td>
       </tr>
       <tr>
         <td>&nbsp;</td>
         <td background="icons/eckelicksunten.gif">&nbsp;</td>
         <td bgcolor="AE0000">&nbsp;</td>
         <td background="icons/eckerechtsunten.gif">&nbsp;</td>
         <td>&nbsp;</td>
       </tr>
       <tr>
         <td>&nbsp;</td>
         <td>&nbsp;</td>
         <td><div align="center">
           <input type="submit" value="Senden">
         </div></td>
         <td>&nbsp;</td>
         <td>&nbsp;</td>
       </tr>
    </table>
  </div>
</form>
</body>
</html>

Vielleicht liegt es ja daran. Aber wenn die Variablen übergeben worden sind, ist das doch eingentlich irrelevant, oder?!

Bye,

WACSF
 
Jo der Html Code vom Formular war überflüssig :-(

der Fehler ist: du übergibst in eine nicht vorhandenes Feld einen wert -

Nach deinem Create hast du das Feld Beschreibung erstellt und nicht wie im Insert
benuzt persinfo

mysql_query($eintrag) OR die(mysql_error());

würde als Fehlermeldung bestimmt ergeben "unbekanntes Feld"

und da das Feld ID ein autowert hat darf das Feld beim Insert nicht angegeben werden
(und natürlich auch bei values kein '')
 
Was ich dir übrigens auch schon (und Shutdown auch!) gesagt habe!

Inwiefern soll JS oder HTML(Clientseitg) ,PHP(Serverseitig) beeinflussen können?
Also den Teil hättest du nicht Posten müssen!
 
Entschuldige bitte für den verplanten HTML Tag und das JavaScript.

Danke an euch beide für die Hilfe. Es lag echt an diesem Übersehen der nichtvorhandenen Spalte.

Danke nochmal,

WACSF
 
Zurück