MySQL Datenbank will Daten nicht einlesen

llpsycholl

Grünschnabel
Hallo!

Ich habe ein kleines Problem. Ich habe ein kleines Gästebuch für meine Ansprüche geschrieben und möchte nun Daten aus einem Formular in eine SQL Datenbank schreiben. Soweit auch kein Problem, habe ich des öfteren auch schon problemlos gemacht. Allerdings will es diesmal einfach nicht klappen.
Mein INSERT Code sieht folgendermaßen aus:

PHP:
$sql2=mysql_query("SELECT * FROM `gb1_posts` ORDER BY ID DESC");
 	$sql3=@mysql_result($sql2,0,ID)+1;
	
	$datum = date("d.m.y");

	$zeit = date("H.i.s");
 	$nachname = $_POST[nachname];
 	$vorname = $_POST[vorname];
 	$email = $_POST[email];
 	$betreff = $_POST[betreff];
 	$text = $_POST[text];
 	$IP = $_SERVER[REMOTE_ADDR];
 	
 	
	$sql1=mysql_query("INSERT INTO gb1_posts (ID,name) VALUES (".$sql3.",".$nachname.")");
Erstmal möchte ich nur ID und name eingetragen haben. Die ID is auch kein problem, das macht er. Diese wird erhöht und eingetragen, solange ich NUR die ID eintragen lassen. Also ...INTO gb1_posts (ID) ...
aber sobald der name dazu kommt klappts nit.
wenn ich jetzt aber als variable für den namen die ID weitergebe, dann geht es! Also so:

PHP:
$sql1=mysql_query("INSERT INTO gb1_posts (ID,name) VALUES (".$sql3.",".$sql3.")");

Ich würde ja auf einen Formatfehler tippen.. Aber keine Ahnung was ich da noch machen kann. Meine Datenbankstruktur sieht so aus:

Feld Typ Kollation Attribute Null Standard Extra Aktion
ID int(4) Nein Zeige unterschiedliche Werte Ändern Löschen Primärschlüssel Unique Index Volltext
date varchar(20) utf8_general_ci Nein Zeige unterschiedliche Werte Ändern Löschen Primärschlüssel Unique Index Volltext
time varchar(20) utf8_general_ci Nein Zeige unterschiedliche Werte Ändern Löschen Primärschlüssel Unique Index Volltext
name varchar(50) utf8_general_ci Nein Zeige unterschiedliche Werte Ändern Löschen Primärschlüssel Unique Index Volltext
vorname varchar(50) utf8_general_ci Nein Zeige unterschiedliche Werte Ändern Löschen Primärschlüssel Unique Index Volltext
email varchar(80) utf8_general_ci Nein Zeige unterschiedliche Werte Ändern Löschen Primärschlüssel Unique Index Volltext
betreff varchar(50) utf8_general_ci Nein Zeige unterschiedliche Werte Ändern Löschen Primärschlüssel Unique Index Volltext
text text utf8_general_ci Nein Zeige unterschiedliche Werte Ändern Löschen Primärschlüssel Unique Index Volltext
IP varchar(15) utf8_general_ci Nein Zeige unterschiedliche Werte Ändern Löschen Primärschlüssel Unique Index Volltext


Hat vielleicht jemand eine Idee?
Dankeschön!

Liebe Grüße

Christoph
 
Hallo!

PHP:
     $nachname = $_POST['nachname']; 
     $vorname = $_POST['vorname']; 
     $email = $_POST['email']; 
     $betreff = $_POST['betreff']; 
     $text = $_POST['text']; 
     $IP = $_SERVER['REMOTE_ADDR'];
Ich persönlich würde ja die Spalte ID auf auto_increment stellen, dann kannst Du Dir auch die vorherige SELECT Abfrage ersparen.

Gruss Dr Dau
 
Dankeschön für die schnelle Antwort!

Leider besteht das Problem auch jetzt noch... Hatte wohl mit den POST Variablen nix zu tun...

DAs mit dem auto_increment werde ich auch machen, allerdings für Testzwecke habe ich erstmal die ID so generiert, da diese ja auch die einzige ist, die sich überhaupt in die Datenbank schreiben lässt :(

Woran kann das nur liegen?

Lg

Chris
 
Was sagt denn
PHP:
echo "<pre>";
var_dump($_POST);
echo "</pre>";
und
PHP:
  $sql1=mysql_query("INSERT INTO gb1_posts (ID,name) VALUES (".$sql3.",".$nachname.")") or die(mysql_error());
Und am Anfang des Scripts mal
PHP:
error_reporting(E_ALL);
einsetzen.

[edit]
Wenn die Spalte für die ID auf auto_increment steht, muss beim Instert das Feld leer bleiben.
MySQL fügt die ID automatisch ein.
[/edit]
 
Zuletzt bearbeitet:
also wenn ich jetzt in das Eingabefeld "name" den Text EINGABE_NAME eingebe, spuckt er jetzt folgendes aus:

Unknown column 'EINGABE_NAME' in 'field list'

wie ist das zu deuten?

lg
 
Versuche es mal so:
PHP:
$sql1=mysql_query("INSERT INTO `gb1_posts` (`ID`,`name`) VALUES ('".$sql3."','".$nachname."')") or die(mysql_error());

[edit]
Moment mal, irgendwas stimmt da mit Deinen Feldnamen des Formulars nicht.
Du redest vom Feld "name", in Deinen POST's kommt das Feld aber nicht vor.
Zeige mal den Quelltext vom Formular.
[/edit]
 
Zuletzt bearbeitet:
sorry das war ein schreibfehler von mir, das inputfeld heißt "nachname"..
aber mit dem neuen code den du mir gegeben hast funktioniert es :))

array(5) {
["nachname"]=>
string(12) "EINGABE_NAME"
["vorname"]=>
string(0) ""
["email"]=>
string(0) ""
["betreff"]=>
string(0) ""
["text"]=>
string(0) ""
}


Notice: Use of undefined constant email - assumed 'email' in /home/moh/public_html/chrishp/guestbook1.php on line 65

Notice: Use of undefined constant name - assumed 'name' in /home/moh/public_html/chrishp/guestbook1.php on line 65

Notice: Use of undefined constant vorname - assumed 'vorname' in /home/moh/public_html/chrishp/guestbook1.php on line 65

Notice: Use of undefined constant date - assumed 'date' in /home/moh/public_html/chrishp/guestbook1.php on line 65

Notice: Use of undefined constant time - assumed 'time' in /home/moh/public_html/chrishp/guestbook1.php on line 65

Notice: Use of undefined constant betreff - assumed 'betreff' in /home/moh/public_html/chrishp/guestbook1.php on line 65

Notice: Use of undefined constant text - assumed 'text' in /home/moh/public_html/chrishp/guestbook1.php on line 65


das wird mir jetzt noch angezeigt, allerdings ist der Eintrag nun so wie es sein soll vorhanden :)) Ich teste das ganze nun im Gesamtzusammenhang und hau dir Fehlerabfragen mal raus und wenn es dann doch nicht mehr klappt, meld ich mich wieder!

Vielen Dank für deine sehr kompetente Hilfe :) Gute Arbeit :))

Liebe Grüße

Christoph
 
Zurück