Mit Formular in Datenbank schreiben

Also du solltest deine Syntax nochmal genau überprüfen, da stechen die Fehler nur so raus ;)

Anhand der Fehlermeldung die du bekommst für den Query kannst du dir evtl. schon denken an was es liegt...
Ich geh mal davon aus das 'id' ein auto_increment ist, also probier mal das:
PHP:
$sql="INSERT INTO buch (id, datum, titel, text, link) VALUES ('','$_POST[datum]','$_POST[titel]', '$_POST[text]','$_POST[link]')" ;

Bitte bei vordefinierten Variablen wie $_POST den "_" nicht vergessen!
Also z.B. auch hier:
PHP:
if (!empty($_POST["submit"])) {

Eine Empfehlung noch:
Nimm bevor dein script noch nicht funktioniert die "@"-Zeichen vor deinen mysql Befehlen erstmal weg und arbeite mit mysql_error() z.B. so:
PHP:
mysql_query ($sql) OR die(mysql_error());
 
stell mich wohl gerade etwas dumm an !

der code sieht nun so aus

<?php
if (!empty($_POST["submit"])) {
mysql_connect("localhost","Mway","Heiko") or die ("Verbunding zu MySql fehlerhaft");
mysql_select_db("tagebuch") or die ("Datenbankzugriff gescheitert!");
$sql="INSERT INTO buch (id, datum, titel, text, link) VALUES ('','$_POST[datum]','$_POST[titel]', '$_POST[text]','$_POST[link]')" ;
mysql_query ($sql) OR die(mysql_error());
mysql_close();
}
?>

aber es ändert nach wie vor noch nichts !
 
Hallo,
so vielleicht:
PHP:
<?php
  if (!empty($_POST["submit"])){
	$verbindung = mysql_connect("localhost","Mway","Heiko") or die ("Verbunding zu MySql fehlerhaft");
	mysql_select_db("tagebuch") or die ("Datenbankzugriff gescheitert!");
	$sql="INSERT INTO buch (datum, titel, text, link) VALUES ('".$_POST['datum']."', '".$_POST['titel']."', '".$_POST['text']."', '".$_POST['link']."')"; 
	mysql_query($sql) or die (mysql_error()); 
	mysql_close($verbindung);
  }
?>

mfg
forsterm
 
Zuletzt bearbeitet:
Hallo!

Wobei if(!empty($_POST["submit"])) irgendwie Blödsinn ist..... wenn Submit gedrückt wird, ist es auch nicht leer.
Die Input Felder hingegen könnten leer sein..... und dies führt zu leeren Einträgen in der Datenbank.

Ich würde es also so ungefähr machen:
PHP:
<?php
if(isset($_POST['submit'])) {
	 if(empty($_POST['datum'] OR empty($_POST['titel']) OR empty($_POST['text']) OR empty($_POST['link'])) {
		 echo "Nicht alle Felder ausgefüllt!";
	 } else {
		 // Rest
	 }
}
Gruss Dr Dau

[edit]
@Perforator, nein..... wenn die Verbindung nicht angegeben wird, dann wird die letzte noch offene Verbindung genommen.
Es tut also nicht unbedingt Not die Verbindung mit anzugeben..... ausser evtl. wenn Du mehrere verschiedene Verbindungen einsetzen willst.
[/edit]
 
Zuletzt bearbeitet:
danke für eure hilfe aber beide methoden gehen nicht, ich werde einfach mal die datenbank neu anlegen vielleicht liegt der fahler ja schon da drin, und das script neu machen vielleicht geht es ja dann !
 
das problem liegt ganz woanderst das script geht aber nur wenn ich es ausserhalb meinen templates lade !

auf meiner indexseite habe ich folgenden text geschrieben um den inhalt zu laden

Code:
<? 
              switch($section){ 
              case "home": include("home.php"); break; 
              case "tagebuch": include("tagebuch.php"); break;
              case "bilder": include("bilder.php"); break;
              case "kontakt": include("kontakt.php"); break;
              case "links": include("links.php"); break;
              case "gaestebuch": include("gaestebuch.php"); break;
              case "tagebucheintrag": include("tageintrag.php"); break; 
              default: include("home.php"); break;

das das script aus dem ersten beitrag, ja eine befehl an den browser schickt ich habe auch schon den default behel rausgenommen bringt aber nichts ! wie kann ich nun mein problem umgehen ?
 
Ja das section wir im Browser eingegeben.

Ich habe meinen Quelltext wir folgt eingegeben

<?
switch $_GET['section']{
case "home": include("home.php"); break;
case "tagebuch": include("tagebuch.php"); break;
case "bilder": include("bilder.php"); break;
case "kontakt": include("kontakt.php"); break;
case "links": include("links.php"); break;
case "gaestebuch": include("gaestebuch.php"); break;
case "tagebucheintrag": include("tageintrag.php"); break;
default: include("home.php"); break;

allerdings kommt nur diese Fehlermeldung

Parse error: parse error, unexpected T_VARIABLE, expecting '(' in D:\www\kinder\index.php on line 95

in der Linie 95 ist genau diese Variable hinterlegt !

Zu der Netiquette ich wüsste nicht, was ich falsch gemacht habe.
 
Zuletzt bearbeitet:
Zurück