• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Fehler meldung - Was muss ich ändern ?

Hansii

Mitglied
Hallo.

Habe ein Gästebuch programmiert: Bundesliga Saison 2012/2013

Folgender PHP-Code :

Code:
<?php
if ($action == "add"){
if ($name == "" || $mail == "" || $text == ""){
echo "<b>Du hast nicht alle Felder ausgef&uuml;llt !</b><br>";
echo "Klicke auf den Backbutton deines Browsers";
}
else{
}
}
else{




$sql = " INSERT INTO einträge ";
$sql .= " SET ";
$sql .= " name   ='". $_POST['name'] ."', ";
$sql .= " mail  ='". $_POST['mail'] ."', ";
$sql .= " text    ='". $_POST['text'] ."', ";


define ( 'MYSQL_HOST', '[U][B][COLOR=#ff0000]xxx[/COLOR][/B][/U]' );
define ( 'MYSQL_BENUTZER', '[U][B][COLOR=#ff0000]xxx[/COLOR][/B][/U]' );
define ( 'MYSQL_KENNWORT', '[U][B][COLOR=#ff0000]xxx[/COLOR][/B][/U]' );
define ( 'MYSQL_DATENBANK', '[U][B][COLOR=#ff0000]xxx[/COLOR][/B][/U]' );

$db_link = @mysql_connect (MYSQL_HOST,
                           MYSQL_BENUTZER,
                           MYSQL_KENNWORT);

if ( ! $db_link )
{
  // hier sollte dann später dem Programmierer eine
  // E-Mail mit dem Problem zukommen gelassen werden
  // die Fehlermeldung für den Programmierer sollte
  // das Problem ausgeben mit: mysql_error()
  die('keine Verbindung zur Zeit möglich -
       später probieren ');
}

$db_sel = mysql_select_db( MYSQL_DATENBANK )
        or die("Auswahl der Datenbank fehlgeschlagen");

$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
  die('Ungültige Abfrage: ' . mysql_error());
}





?>
 
Dein SQL-Befehl ist falsch. Die Syntax lautet: INSERT INTO (feld1, feld2) VALUES('wert1', 'wert2')

PS: Datenbanken, so wie auch Variablen, nie mit Umlauten zu bezeichnen (einträge = eintraege). ;)
 
Sorry, aber ich verstehe es gerade nicht. Ich habe ja

Code:
$sql = " INSERT INTO gaestebuch ";
$sql .= " SET ";
$sql .= " name   ='". $_POST['name'] ."', ";
$sql .= " mail  ='". $_POST['mail'] ."', ";
$sql .= " text    ='". $_POST['text'] ."', ";

name (1) ist das Feld
name (2) ist der Wert

Was ist denn daran falsch ?

Danke im Voraus für die Hilfe
 
Code:
$sql = " INSERT INTO gaestebuch (name, mail, text) VALUES('".$_POST['name']."', '".$_POST['mail']."', '".$_POST['text']."') ";

Das ist der richtige Befehl...Du hast gesagt INSERT INTO SET...Richtig ist aber INSERT INTO () VALUES()
 
Code:
$sql = " INSERT INTO gaestebuch ";
$sql .= " SET ";
$sql .= " name   ='". $_POST['name'] ."', ";
$sql .= " mail  ='". $_POST['mail'] ."', ";
$sql .= " text    ='". $_POST['text'] ."'[COLOR=#ff0000],[/COLOR] ";

Was ist denn daran falsch ?

Das letzte Komma, ich habs mal rot markiert.

Code:
$sql = " INSERT INTO gaestebuch (name, mail, text) VALUES('".$_POST['name']."', '".$_POST['mail']."', '".$_POST['text']."') ";

Das ist der richtige Befehl...Du hast gesagt INSERT INTO SET...Richtig ist aber INSERT INTO () VALUES()

Falsch. INSERT INTO .. SET .. ist ein zulässiger Befehl, siehe Manual: MySQL :: MySQL 5.5 Reference Manual :: 13.2.5 INSERT Syntax
 
Hallo.

Das Formular funktioniert jetzt. Das Absenden auch.

Jetzt habe ich ein anderes Problem :

Ich habe als Test einige Daten angegeben, die in der Datenbank aber nicht sichtbar sind, die Einräge sind leer. Warum ?

Danke
 
Vermutung:
Du hast immernoch einen SQL-Fehler in deinem SQL-Statement. Dadurch wird nichts eingetragen. Prüfe das mit mysql_error().
 
Zurück
Oben