PHP MySQL Datenbank Eintrag bringt Syntax Fehlermeldung

matty2k

Grünschnabel
Hallo zusammen,

eventuell kann mir jemand von euch bei meinem Datenbankscript weiterhelfen. Ich bekomme immer eine Fehlermeldung die folgendermaßen aussieht:

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 22

Allerdings steht in der zeile 22 gar nichts! Wo könnte der Fehler liegen? Ich Poste mal den Code:

Code:
   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
   <html>
   <head>
   <title>Registrierung</title>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <style type="text/css">
   <!--
   body {
   	background-color: #CCCCCC;
   }
   -->
   <link href="../CSS/navi.css" rel="stylesheet" type="text/css">
   <style type="text/css">
   <!--
   .Stil1 {font-size: 26px}
   a:visited {
   	color: #000066;
   }
   -->
   </style>
   
   <link href="../../CSS/navi.css" rel="stylesheet" type="text/css">
   </head>
   
   <body>
   
   <?php
   	//Verbindung zur DB Herstellen und Fehlerausgabe
   	error_reporting(E_ALL);
   
   	include 'konstante_chars.php';
   	// Konfigurationsdatei laden
   
   	if(!@mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS)) {
 		die("Es konnte keine Verbindung zur Datenbank aufgebaut werden. Bitte versuchen Sie es später erneut.");
   	}
   
   	echo "Verbindung wurde aufgebaut<br />\n";
   
   	if(!mysql_select_db(MYSQL_DATABASE)) {
   		die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());
   	}
   
   	echo "Die Datenbank wurde ausgewählt";
   
   	// Hier kann man jetzt MySQL-Querys senden
   	
   	
   ?>
   
   <?php
   //Die Formulardaten werden mit diesem Script in die DB geschrieben
   if(!empty($_POST))
   {
   $sql = "INSERT INTO  gruenderwettbewerb
   (
   Vorname,
   Name,
   Straße,
   Hausnummer,
   Wohnort,
   Postleitzahl,
   eMail,
   radiobutton
   )
   VALUES
   (
   '" . addslashes($_POST["Vorname"]) . "',
   '" . addslashes($_POST["Name"]) . "',
   '" . addslashes($_POST["Straße"]) . "',
   '" . addslashes($_POST["Hausnummer"]) . "',
   '" . addslashes($_POST["Wohnort"]) . "',
   '" . addslashes($_POST["Postleitzahl"]) . "',
   '" . addslashes($_POST["eMail"]) . "',
   '" . addslashes($_POST["radiobutton"]) . "',
   )
   ";
   mysql_query($sql) OR die(mysql_error());
   
   
   exit;
   }
   ?> 
   
   
   <form name="form1" method="post" action="">
     <table width="80%"  border="0">
   	<tr>
   	  <td width="15%"><h1 class="fett_gro&szlig;">&nbsp;</h1></td>
 	 <td width="85%"><h1 class="mediumfett">Um Ihre Daten f&uuml;r uns zu erfassen, f&uuml;llen Sie bitte die folgende Felder aus und klicken auf absenden. </h1></td>
   	</tr>
   	<tr align="left" valign="top" class="main">
   	  <td height="35" align="left" valign="middle" class="main_klein">Vorname</td>
 	 <td valign="middle" class="main_klein"><input name="Vorname" type="text" id="Vorname"></td>
   	</tr>
   	<tr align="left" valign="top" class="main">
   	  <td height="36" align="left" valign="middle" class="main_klein">Name</td>
 	 <td valign="middle" class="main_klein"><input name="Name" type="text" id="Name"></td>
   	</tr>
   	<tr align="left" valign="top" class="main">
   	  <td height="33" align="left" valign="middle" class="main_klein">Stra&szlig;e</td>
 	 <td valign="middle" class="main_klein"><input name="Stra&szlig;e" type="text" id="Stra&szlig;e"></td>
   	</tr>
   	<tr align="left" valign="top" class="main">
   	  <td height="32" align="left" valign="middle" class="main_klein">Hausnummer</td>
 	 <td valign="middle" class="main_klein"><input name="Hausnummer" type="text" id="Hausnummer"></td>
   	</tr>
   	<tr align="left" valign="top" class="main">
   	  <td height="32" align="left" valign="middle" class="main_klein">Wohnort</td>
 	 <td valign="middle" class="main_klein"><input name="Wohnort" type="text" id="Wohnort"></td>
   	</tr>
   	<tr align="left" valign="top" class="main">
   	  <td height="32" align="left" valign="middle" class="main_klein">Postleitzahl</td>
 	 <td valign="middle" class="main_klein"><input name="Postleitzahl" type="text" id="Postleitzahl"></td>
   	</tr>
   	<tr align="left" valign="top" class="main">
   	  <td height="32" align="left" valign="middle" class="main_klein">eMail</td>
 	 <td valign="middle" class="main_klein"><input name="eMail" type="text" id="eMail"></td>
   	</tr>
   	<tr align="left" valign="middle" class="main">
   	  <td class="main_klein">bereits gegr&uuml;ndet </td>
 	 <td class="main_klein"><input type="radio" name="radiobutton" value="Ja">		
   		JA 
   		
   		  <input name="radiobutton" type="radio" value="Nein" checked>
   	  Nein</td>
   	</tr>
   	<tr class="main">
   	  <td height="35">&nbsp;</td>
 	 <td class="main"><input name="Absenden" type="submit" id="Absenden" onClick="MM_validateForm('Vorname','','R','Name','','R','Stra&szlig;e','','R','Hausnummer','','RisNum','Wohnort','','R','Postleitzahl','','RisNum','eMail','','RisEmail');MM_goToURL('main','../wettbewerbsunterlagen/wettbewerb.htm');return document.MM_returnValue" value="Absenden"> 
   	  </td>
   	</tr>
     </table>
   </form>
   <p>&nbsp;</p>
   </body>
   </html>

Das sollte doch nur ein kleiner Fehler sein, den ich übersehen habe, denn Datenbankverbindung wird hergestellt und die DB wird auch korrekt ausgewählt.
Die Line 22 ist genau unter dieser Stelle hier:
Code:
  <link href="../CSS/navi.css" rel="stylesheet" type="text/css">
  <style type="text/css">
  <!--
  .Stil1 {font-size: 26px}
  a:visited {
  	color: #000066;
  }
  -->
  </style>

Besten Dank im Vorraus.

Matty
 
mit "line 22" ist nicht die Zeile in deinem Script gemeint, sondern die Zeile deiner
Datenbankabfrage. Du hast dort vor der schließenden Klammer ein Komma zuviel.

Gruß
yson
 
OK,

danke für die super schnelle Antwort!
Eventuell kannst du mir noch schnell sagen wie man den Radiobutton bzw dessen Status in die DB bekommt. Also wie muss ich den Abfragen und welche Eigenschaften muss das Datenbankfeld auf dem Server haben? Da kommt dann nämlich diese Meldung:

Unknown column 'radiobutton' in 'field list'

Dann hab ich es endlich geschafft. Diese Datebnak hat mich schon lange beschäftigt ;-)

mfG

Matty
 
matty2k hat gesagt.:
Unknown column 'radiobutton' in 'field list'
Diese Zeile sagt aus, dass es die Spalte 'radiobutton' nicht in der Tabelle gibt,
in die du einen Datensatz einfügen willst. Die müsstest du also erstmal anlegen.
Welche Eigenschaften das Feld in der Datenbank braucht, liegt daran, was für
Daten du übergibst. Wenn du "ja" oder "nein" eintragen willst, nimmst du
varchar(4). Allerdings würde ich empfehlen statt "ja" 1 und statt "nein" 0 zu
übergeben und dann tinyint(1) zu verwenden.
 
OK,

ich danke euch für die schnellen und hilfreichen Antworten. Ich hatte für die Buttons nicht den entsprechenden Namen in der Tabelle, daher gab es Probleme. Ein weiteres Problem welches mich derzeit beschäftigt, ist die Weiterleitung innerhalb des MainFrames auf eine andere Seite, nach dem Senden der Daten über den Senden Button.

Hier kann man ja die Eigenschaften festlegen, was passieren soll, bzw. OnClick. Dort habe ich dann folgendes eingetragen, damit die Seite auch im MainFrame geöffnet wird.

Code:
  MM_goToURL('parent.frames[\'mainFrame'\]','../wettbewerbsunterlagen/wettbewerb.htm')

Leider funktioniert es nicht. Es wird nur eine leere Seite, immerhin im MainFrame angezeigt. Schreibe ich dort lediglich folgendes hinein:

Code:
  MM_goToURL('parent','../wettbewerbsunterlagen/wettbewerb.htm')

wird die neue Seite zwar geladen, aber leider nur komplett und nicht innerhalb des Frames. Ich habe auch bereits die andere Mthode getestet, indem ich eine Weiterleitung mit PHP Header durchführe. Hierbei kommt es aber immer zu einer Fehlermeldung. Das sah dann im Code folgendermaßen aus:

Code:
  VALUES
  (
  '" . addslashes($_POST["Vorname"]) . "',
  '" . addslashes($_POST["Name"]) . "',
  '" . addslashes($_POST["Straße"]) . "',
  '" . addslashes($_POST["Hausnummer"]) . "',
  '" . addslashes($_POST["Wohnort"]) . "',
  '" . addslashes($_POST["Postleitzahl"]) . "',
  '" . addslashes($_POST["eMail"]) . "'
  )
  ";
  mysql_query($sql) OR die(mysql_error());
  header('Location: http://www.zielseite.de');
  exit;
  }
  ?>
Aber anscheinend wird vorher irgendetwas ausgegeben. Vielleicht kann mir da noch jemand helfen. Dann hoffe ich tatsächlich damit durch zu sein.

Vielen Dank an alle.

Euer Matty
 
dein Quoting ist falsch. Du hast deinen Backslash vor der eckigen Klammer.
Es muss aber vor das Hochkomma.

Code:
MM_goToURL('parent.frames[\'mainFrame'\]','../wettbewerbsunterlagen/wettbewerb.htm')

Code:
MM_goToURL('parent.frames[\'mainFrame\']','../wettbewerbsunterlagen/wettbewerb.htm')
 
Ja OK,

soweit habe ich den Code hier mal geändert,
es wird eine neue aber leere Seite im Main Frame angezeigt.
Zumindest im FireFox.

Allerdings bekomme ich im InternetExplorer eine Fehlermeldung.
Die folgendermaßen aussieht:

Es ist ein Laufzeitfehler aufgetreten.
Soll der Debugmodus gestartet werden?
Zeile 35
Fehler: Parentz.Frames.MainFrame ist Null oder kein Objekt

Tja, das ist natürlcih irgendwie komisch. Eventuell sollte ich noch erwähnen,
dass es sich um ein verschachteltes Frameset handelt, damit die Seite immer
mittig angezeigt wird.

mfG

Matty
 
Hallo zusammen,

nochmals besten Dank für eure Hilfe,
jedenfalls hab ich jetzt die Seite nochmal komplett geupped
und es funktioniert alles so wie ich es mir vorgestellt hatte.
Wo der Fehler nun genau lag, kann ich nicht mehr nachvollziehen.

mfG


Matty
 
Zurück