Probleme mit Upload Formular

ava99

Erfahrenes Mitglied
Hallo,

habe ein php-Formular erstellt zum uploaden von Bildern in ein Verzeichnis.

Code:
......
if(isset($_FILES['bild_1']))
{
	if($_FILES['bild_1']['type'] == "image/gif" || $_FILES['bild_1']['type'] == "image/jpeg" || $_FILES['bild_1']['type'] == "image/jpg")
	{
		if(!empty($_POST['name']))
		{
			$filename = $_FILES['bild_1']['name'];
			move_uploaded_file($_FILES['bild_1']['tmp_name'], "localhost/bilder".$filename);
			$sql = "INSERT INTO bilder VALUES (name='".$_POST['name']."', bild_1='".$filename."')";
			mysql_query($sql) or die (mysql_error());
			echo "<center>Das Bild wurde erfolgreich hochgeladen!</center>";
		}
		else
		{
			echo "<center>Bitte geben Sie einen Namen ein!";
		}
	}
	else
	{
		echo "<center>Der Upload war nicht erfolgreich:<br>Die Datei ist kein Bild!</center>";
	}
}
........

Wenn ich nun diesen Code ausführen lassen möchte kommt folgende Fehlermeldung :
Code:
Column count doesn't match value count at row 1

Ich sehe nicht den Fehler :confused:

Wäre für Hilfe dankbar


Grüße
ava99
 
Normalerweise sieht ein INSERT bei mysql wie folgt aus:

INSERT INTO `tabellenname`
(`Zeilenname1`,`Zeilenname2`...,`ZeilennameN))
VALUES ("Inhalt1","Inhalt2",...,"InahaltN")
 
Hallo ava,

im Prinzip liegt der Fehler im Sql-Query, wie PsychoCat treffend bemerkt hat.
Die Fehlermeldung ist doch ziemlich eindeutig:
Code:
Column count doesn't match value count at row 1
Die Spaltenanzahl stimmt nicht mit der Werteanzahl überein.
Will heißen, dass man in eine Tabellenzeile nur so viele Werte einfügen kann, wie auch entsprechende Spalten vorhanden sind.
 
Hallo,

vielen Dank für die prompten Antwort. Es lag daran :-( .

habe nun einanderes Problem. Die Werte werden mir zwar jetzt in die DB eingetragen, aber Bild wird nicht hochgeladen.
Code:
if($_FILES['bild_1']['type'] == "image/gif" || $_FILES['bild_1']['type'] == "image/jpeg" || $_FILES['bild_1']['type'] == "image/jpg")
	{
		if(!empty($_POST['name']))
		{
			$filename = $_FILES['bild_1']['name'];
			move_uploaded_file($_FILES['bild_1']['tmp_name'], "localhost/images/".$filename);
			$file = "localhost".$filename;
			$sql = "INSERT INTO bilder (name, bild_1)VALUES ('".$_POST['name']."','".$file."')";
			mysql_query($sql) or die (mysql_error());
			echo "<center>Das Bild wurde erfolgreich hochgeladen!</center>";
		}
		else
		{
			echo "<center>Bitte geben Sie einen Namen ein!";
		}
	}

Wäre für Hilfe dankbar


Grüße
ava99
 
Zurück