PHP Werte in DB schreiben - komme nicht weiter

AwesomSTUFF

Rear Admiral
Registriert
Juli 2011
Beiträge
5.337
Hi Folks,

ich arbeite grad an einem Gildenroster für meine GW2 Gildenseite.
Seit heute arbeite ich am Eingabeformular´, aber ich bin an einem Punkt wio ich irgendwie nicht recht weiterkomme.

Ich habe ien Eingabeformular erstellt, was auch funktioniert und die Daten kann ich auch mit POST übernehmen. Die SQL Connect und den Kopf lass ich hier mal weg.

Die .benutzerid. wird im CMS erzeugt.

Die MySQl Tabelle hat die Felder :

Code:
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `Nick` char(50) DEFAULT NULL,
  `Realname` char(50) DEFAULT NULL,
  `Klasse` char(255) DEFAULT NULL,
  `Rang` char(255) DEFAULT NULL,
  `Beruf1` char(255) DEFAULT NULL,
  `Beruf2` char(255) DEFAULT NULL,
  `Rasse` char(255) DEFAULT NULL,
  `user` int(10) NOT NULL,
  PRIMARY KEY (`ID`)

PHP:
  <?php
  
 
// Fehlerreporting einschalten
  error_reporting(E_ALL);
ini_set('display_errors', 1);

if (isset( $_POST['eintragen'] ))
{
    echo "<pre>" .print_r( $_POST, true ). "</pre>";

	
	// Maskierende Slashes aus POST entfernen
    $_POST = get_magic_quotes_gpc() ? array_map( 'stripslashes', $_POST ) : $_POST;
    
    // Inhalte der Felder aus POST holen
    $Nick = $_POST['Nick'];
    $Realname = $_POST['Realname'];
	$Klasse = $_POST['Klasse'];
	$Rasse = $_POST['Rasse'];
    $Rang = $_POST['Rang'];
	$Beruf1 = $_POST['Beruf1'];
	$Beruf2 = $_POST['Beruf2'];
    



// Anfrage zusammenstellen der an die DB geschickt werden soll
    $sql = "INSERT INTO Edsroster
				(Nick,Realname,Klasse,Rang,Beruf1,Beruf2,Rasse,user)
				VALUES(
                '" .mysql_real_escape_string( $Nick ). "',
                '" .mysql_real_escape_string( $Realname ). "',
				'" .mysql_real_escape_string( $Klasse ). "',
				'" .mysql_real_escape_string( $Rang ). "',
				'" .mysql_real_escape_string( $Beruf1 ). "',
				'" .mysql_real_escape_string( $Beruf2 ). "',
				'" .mysql_real_escape_string( $Rasse ). "',
                " .$benutzerid. ",
                 )";
    // Schickt die Anfrage an die DB und schreibt die Daten in die Tabelle
    mysql_query( $sql );
    // Pruefen ob der neue Datensatz tatsaechlich eingefuegt wurde
    if (mysql_affected_rows() == 1)
    {
        echo "<h3>Der Datensatz wurde hinzugefügt!</h3>";
        }
    else
    {
	echo $sql;
        echo "<h3>Der Datensatz konnte <strong>nicht</strong> hinzugefügt werden!</h3>";
    }
  
}
?>

Ich hab mir zur Überprüfung woran es mangelt schon das Array und den §sql ausgeben lassen (wie man ja am Code sehen kann). Als Ergebnis bekomme ich nach einer Eingabe aber immer.

Array
(
[Nick] => test
[Realname] => test
[Rasse] => ASU
[Klasse] => THF
[Rang] => NEU
[Beruf1] => JUW
[Beruf2] => KCH
[eintragen] => eintragen
)

INSERT INTO Edsroster VALUES( 'test', 'test', 'THF', 'NEU', 'JUW', 'KCH', 'ASU', 4, )
Der Datensatz konnte nicht hinzugefügt werden!

Ich habe zuerst gedacht es liegt an dem ID Feld weil ich da ja nix explizit reinschreibe, aber daran scheint es nicht zu liegen.

Die DB Connection Daten mysql_connect und mysql_select_db benutze ich auch in anderen Files, und da gehen sie.

Ich bin auf dem ganzen PHP Gebiet noch ganz frisch (erst diese Woche angefangen) also bitte Nachsicht...und HILFE!^^

MfG Dave
 
Code:
INSERT INTO Edsroster VALUES( 'test', 'test', 'THF', 'NEU', 'JUW', 'KCH', 'ASU', 4[U][B],[/B][/U] )
Was hat das letzte Komma da hinten der 4 zu suchen?
Man sollte eine Zeile immer mit Semikolon ";" abschließen!
Der Syntax für INSERT INTO ist "INSERT INTO TABELLE (SPALTE1, SPALTE2, ...) VALUES (WERT1, WERT2, ...);"
 
Zuletzt bearbeitet:
Als Tipp:
Die Query im phpmyAdmin ausführen und Fehlermeldung überprüfen.

Was macht das letzte Komma in der Klammer mit den Daten da?

VALUES( 'test', 'test', 'THF', 'NEU', 'JUW', 'KCH', 'ASU', 4, )
 
um es einfacher zu halten, kannste aber auch INSERT INTO tabelle SET spalte1='wert1', spalte2='wert2' verwenden.
 
Lass dir mal nach mysql_query()... mit mysql_error() die Fehlermeldung von der Datenbank ausgeben. Vielleicht steht da ja etwas Hilfreiches drin :)
 
OMG...so kanns gehen wenn man den ganzen Tag Code anguckt. PEINLICH!

Aber da ich auch noch ein "Editieren" Formular bauen muss welches dann dem User nur die Datensätze mit seiner BenutzerId anzeigt....werde ich bestimmt schon bald wieder da sein.

Vielen Dank ich mach denn ma weiter, bis später :D

Dave
 
Zurück
Oben