Cannot use string as Array

Shelke

Grünschnabel
Hallo liebe Tutorials Community,

Ich habe folgendes Problem:
Ich möchte für meinen Login eine Registrierung schreiben. Funktioniert alles soweit bis auf die Tatsache, das nur 1 Feld in die Datenbank übernommen wird und zwar der Nickname, rest lässt sich nicht anhängen da ich sonst oben genannten Fehler erhalte, könnt ihr mir weiterhelfen?

Der Fehler liegt an der INSERT Into Zeile, die er zwar korrekt einträgt, jedoch will ich das er aus den Feldern Kennwort und Nachname auch noch einträgt und zwar zum selben User.
Danke im Vorraus

Code:
<?php 
    $message = "";
    $db_name = 'phplogin';
    $db_user = 'root';
    $db_host = 'localhost';
    $db_pw = '';
    
    
     $con = mysql_connect($db_host, $db_user, $db_pw)
        or die(mysql_error());
    $db = mysql_select_db($db_name, $con)
        or die(mysql_error());

        if(isset($_POST['insert']))    {
			$kennwort = $_POST['Kennwort'];
			$nickname = $_POST['Nickname'];
			$vorname = $_POST['Vorname'];
			$nachname =$_POST['Nachname'];
        	
        	$sql_data_insert = "INSERT INTO benutzerdaten (Nickname) VALUES ('".$_POST['Nickname']."')";
        $qry_data_insert = mysql_query($sql_data_insert)
            or die(mysql_error());

        if($qry_data_insert)    {
            $message = "<span style=\"color:#ff0000;font-weight:bold;\">Registrierung Erfolgreich!</span>";
        }else{
            $message = "<span style=\"color:#ff0000;font-weight:bold;\">Registrierung Fehlgeschlagen!</span>";      
        }
        }
?>
<html>
<head>
<title>User Registrierung</title>
</head>

<body>
<? echo $message; ?>
<form action="<?php $_SERVER['PHP_SELF']; ?>" name="modData" method="POST">
<input type="hidden" name="id" value="<? echo $edit; ?>">
<h3>Nickname:</h3><input type="text" name="Nickname"></textarea><br>
<h3>Kennwort:</h3><input type="password" name="Kennwort"></textarea><br>
<h3>Nachname:</h3><input type="text" name="Nachname"></textarea>
<br>
<br />
<? if($edit)    {    ?>
<input type="submit" name="update" value="Editieren">
<? }else {    ?>
<input type="submit" name="insert" value="Registrieren">
<? }    ?>
<br />
<hr />
</form>
</body>
</html>
 
Es wird nur Nickname eingetragen, weil du genau dass auch so schreibst:
PHP:
$sql_data_insert = "INSERT INTO benutzerdaten (Nickname) VALUES ('".$_POST['Nickname']."')";
Du musst also deinen Query noch erweitern:
PHP:
$sql_data_insert = "INSERT INTO benutzerdaten (Nickname, Kennwort) VALUES ('".$_POST['Nickname'].", ".$_POST['Kennwort']."')";

//edit: Ups hab ich ja fast übersehen: Für welche Zeile im Code kommt der Fehler?
 
Zuletzt bearbeitet:
So hab ichs probiert, danach erhalte ich allerdings

Code:
Column count doesn't match value count at row 1
Und finde den grund nicht
 
PHP:
$sql_data_insert = "INSERT INTO benutzerdaten (Nickname, Kennwort, Nachname, Vorname) VALUES ('".$_POST['Nickname'].", ".$_POST['Kennwort'].", ".$_POST['Nachname'].", ".$_POST['Vorname']."')";

So wäre es komplett mit dem Vor und Nachname.......
 
Haben nun die Lösung

Code:
$sql = "INSERT INTO benutzerdaten (Nickname, Kennwort, Nachname, Vorname) VALUES ('".$_POST['Nickname']."' , '".$_POST['Kennwort']."' , '".$_POST['Nachname']."' , '".$_POST['Vorname']."')";

Vielen Dank an alle für die Hilfe :D
 
Zurück