welches feld ist falsch benannt?

lifehunter

Erfahrenes Mitglied
ich habe eine Tabelle die sieht so aus:
CREATE TABLE `umfragewert` (
`ID` int(14) unsigned NOT NULL auto_increment,
`aktiv` int(1) default '1',
`friend` int(1) default NULL,
`verfasser` int(14) default NULL,
`frage` blob,
`aanzahl` int(2) default NULL,
`ant1` varchar(30) default NULL,
`ant2` varchar(30) default NULL,
`ant3` varchar(30) default NULL,
`ant4` varchar(30) default NULL,
`ant5` varchar(30) default NULL,
`ant6` varchar(30) default NULL,
`ant7` varchar(30) default NULL,
`ant8` varchar(30) default NULL,
`ant9` varchar(30) default NULL,
`ant10` varchar(30) default NULL,
PRIMARY KEY (`ID`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;

Jetzt bringt der mir folgenden Fehler wenn ich versuche was einzutragen:
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 ') values('1', '1', 'text

mein eintragen in die Datenbank sieht so aus:
$sql="INSERT INTO `umfragewert` (friend, verfasser, frage, aanzahl, ant1, ant2, ";
if($aanzahl>2)
$sql.="ant3, ";
if($aanzahl>3)
$sql.="ant4, ";
if($aanzahl>4)
$sql.="ant5, ";
if($aanzahl>5)
$sql.="ant6, ";
if($aanzahl>6)
$sql.="ant7, ";
if($aanzahl>7)
$sql.="ant8, ";
if($aanzahl>8)
$sql.="ant9, ";
if($aanzahl>9)
$sql.="ant10";
$sql.=") values('$friend', '".$_SESSION['ID']."', '$frage', '$aanzahl', ";
if($aanzahl>2)
$sql.="'$ant3', ";
if($aanzahl>3)
$sql.="'$ant4', ";
if($aanzahl>4)
$sql.="'$ant5', ";
if($aanzahl>5)
$sql.="'$ant6', ";
if($aanzahl>6)
$sql.="'$ant7', ";
if($aanzahl>7)
$sql.="'$ant8', ";
if($aanzahl>8)
$sql.="'$ant9', ";
if($aanzahl>9)
$sql.="'$ant10'";
$sql.=")";
mysql_query($sql)or die("Insert fehlgeschlagen: " . mysql_error());

Weiß jemand wo der Fehler liegt

Danke im Vorraus!
 
Gib den erzeugten Query-String mal aus. Ich vermute, dass das letzte Feld nicht verwendet wird und daher ein Komma vor der Klammer steht.

Gruß hpvw

PS: Bitte nutze die Code Tags, [ php ]code[ /php ] für PHP-Quelltexte, [ html ]code[ /html ] für HTML-Quelltexte und [ code ]code[ /code ] für sonstige Quelltexte, natürlich ohne die Leerzeichen. Das macht die Quelltexte übersichtlicher. Für kurze Code-Teile im Fließtext (z.B. Variablen- oder Funktionsnamen) kannst Du [ mono ]kurzer Code fetzen[ /mono ] verwenden.
 
Probier mal Folgendes:
PHP:
<?php

	…

	$query = "
		INSERT INTO
		        `umfragewert`
		  SET
		        `friend`    = '".mysql_real_escape_string($friend)."',
		        `verfasser` = '".$_SESSION['ID']."',
		        `frage`     = '".mysql_real_escape_string($frage)."',
		        `aanzahl`   = '".mysql_real_escape_string($aanzahl)."'";
	for( $i=1; $i<=$aanzahl; $i++ ) {
		$query .= ",\n		        `ant".$i."`      = '".mysql_real_escape_string(${'ant'.$i})."'";
	}
	mysql_query($query) or die('<p><strong>Datenbankabfrage schlug fehl:</strong> '.htmlspecialchars(mysql_error()).'</p><pre>'.htmlspecialchars($query).'</pre>');

	…

?>
 
Zurück