SQl Fehler Column

valeripf

Erfahrenes Mitglied
Kann mir Jemand Helfen.
beim mir Kommt Jetzt SQL Fehler

Column count doesn't match value count at row 1

kann mir Jemand schnell Helfen
 
Code:
 error_reporting(E_ALL); 
    $MYSQL_HOST = *********'; 
    $MYSQL_USER = '*******; 
    $MYSQL_PASS = '**********'; 
    $MYSQL_DATA = '******1'; 

   $connid = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) OR die("Error: ".mysql_error());
    mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error()); 

    session_start(); 

    if(isset($_POST['submit']) AND $_POST['submit']=='Registrieren'){ 
        // Fehlerarray anlegen 
        $errors = array(); 
          // Geburtsdatumsstring erstellen
           $datum = "{$_POST['Jahr']}-{$_POST['Monat']}-{$_POST['Tag']}";
          
         // hier bastelst du dein SQL-Query, nimmst
         // aber $datum statt $_POST['Geburtsdatum']
        // Prüfen, ob alle Formularfelder vorhanden sind 
        if(!isset($_POST['Nickname'], 
                  $_POST['Passwort'], 
                  $_POST['Passwortwiederholung'], 
                  $_POST['Email'], 
                  $_POST['Geschlecht'], 
                  $_POST['Name'], 
                  $_POST['Vorname'], 
                  $_POST['Postleitzahl'],
                  $_POST['Stadt'],
                  $_POST['Strasse'],
                  $_POST['Haus'])) 
            // Ein Element im Fehlerarray hinzufügen 
            $errors[] = "Bitte benutzen Sie das Formular aus dem Registrierungsbereich";
        else{ 
            // Prüfung der einzelnen User Felder 
            // Alle Nicknames und Emailadressen zum Vergleich aus der Datenbank holen
            $nicknames = array(); 
            $emails = array(); 
            $sql = "SELECT 
                             Nickname, 
                             Email 
                     FROM 
                             User 
                    "; 
            $result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error()); 
            while($row = mysql_fetch_assoc($result)){ 
                     $nicknames[] = $row['Nickname']; 
                     $emails[] = $row['Email']; 
            } 
            // Prüft, ob ein Nickname eingegeben wurde 
            if(trim($_POST['Nickname'])=='') 
                $errors[]= "Bitte geben Sie einen Nickname ein."; 
            // Prüft, ob der Nickname mindestens 4 Zeichen enthält 
            elseif(strlen(trim($_POST['Nickname'])) < 4) 
                $errors[]= "Ihr Nickname muss mindestens 4 Zeichen lang sein."; 
            // Prüft, ob der Nickname nur gültige Zeichen enthält 
            elseif(!preg_match('/^\w+$/', trim($_POST['Nickname']))) 
                $errors[]= "Benutzen Sie bitte nur alphanumerische Zeichen (Zahlen, Buchstaben und den Unterstrich).";
            // Prüft, ob der Nickname bereits vergeben ist 
            elseif(in_array(trim($_POST['Nickname']), $nicknames)) 
                $errors[]= "Dieser Nickname ist bereits vergeben."; 
            // Prüft, ob eine Email-Adresse eingegeben wurde 
            if(trim($_POST['Email'])=='') 
                $errors[]= "Bitte geben Sie Ihre Email-Adresse ein."; 
            // Prüft, ob die Email-Adresse gültig ist 
            elseif(!preg_match('§^[\w\.-]+@[\w\.-]+\.[\w]{2,4}$§', trim($_POST['Email']))) 
                $errors[]= "Ihre Email Adresse hat eine falsche Syntax."; 
            // Prüft, ob die Email-Adresse bereits vergeben ist 
            elseif(in_array(trim($_POST['Email']), $emails)) 
                $errors[]= "Diese Email-Adresse ist bereits vergeben."; 
            // Prüft, ob ein Passwort eingegeben wurde 
            if(trim($_POST['Passwort'])=='') 
                $errors[]= "Bitte geben Sie Ihr Passwort ein."; 
            // Prüft, ob das Passwort mindestens 5 Zeichen enthält 
            elseif (strlen(trim($_POST['Passwort'])) < 5) 
                $errors[]= "Ihr Passwort muss mindestens 5 Zeichen lang sein.";
            // Prüft, ob eine Passwortwiederholung eingegeben wurde 
            if(trim($_POST['Passwortwiederholung'])=='') 
                $errors[]= "Bitte wiederholen Sie Ihr Passwort."; 
            // Prüft, ob das Passwort und die Passwortwiederholung übereinstimmen
            elseif (trim($_POST['Passwort']) != trim($_POST['Passwortwiederholung']))
                $errors[]= "Ihre Passwortwiederholung war nicht korrekt.";
            // Prüft, ob ein Geschlecht eingegeben wurde 
            if(trim($_POST['Geschlecht'])=='') 
                $errors[]= "Bitte geben Sie Ihr Geschlecht ein.";
            // Prüft, ob ein Name eingegeben wurde 
            if(trim($_POST['Name'])=='') 
                $errors[]= "Bitte geben Sie Ihr Name ein.";
            // Prüft, ob der Name mindestens 2 Zeichen enthält 
            elseif(strlen(trim($_POST['Name'])) < 2) 
                $errors[]= "Ihr Name muss mindestens 2 Zeichen lang sein."; 
            // Prüft, ob der Name nur gültige Zeichen enthält 
            elseif(!preg_match('/^\w+$/', trim($_POST['Name']))) 
                $errors[]= "Benutzen Sie bitte nur alphanumerische Zeichen (Zahlen, Buchstaben und den Unterstrich).";
            // Prüft, ob ein Vorname eingegeben wurde 
            if(trim($_POST['Vorname'])=='') 
                $errors[]= "Bitte geben Sie Ihr Vorname ein.";
            // Prüft, ob der Vorname mindestens 3 Zeichen enthält 
            elseif(strlen(trim($_POST['Vorname'])) < 3) 
                $errors[]= "Ihr Vorname muss mindestens 3 Zeichen lang sein."; 
            // Prüft, ob der Vorname nur gültige Zeichen enthält 
            elseif(!preg_match('/^\w+$/', trim($_POST['Vorname']))) 
                $errors[]= "Benutzen Sie bitte nur alphanumerische Zeichen (Zahlen, Buchstaben und den Unterstrich).";
            if ( ! checkdate( $_POST['Monat'], $_POST['Tag'], $_POST['Jahr'] ) ) 
                $errors[]= "Geben sie iher Geburtsdatum ein.";
            if(trim($_POST['Postleitzahl'])=='') 
                $errors[]= "Bitte geben Sie Ihr Postleitzahl ein.";
            // Prüft, ob der Postleitzahl mindestens 1 Zeichen enthält 
            elseif(strlen(trim($_POST['Postleitzahl'])) < 1) 
                $errors[]= "Ihr Postleitzahl muss mindestens 1 Zeichen lang sein.Lander Ohne Postleizahl Geben sie Einfach 0";
             if(trim($_POST['Stadt'])=='') 
                $errors[]= "Bitte geben Sie Ihr Stadt ein.";
            // Prüft, ob der Stadt mindestens 4 Zeichen enthält 
            elseif(strlen(trim($_POST['Stadt'])) < 4) 
                $errors[]= "Bitte Geben Sie ihere Stadt ein."; 
            // Prüft, ob ein Strasse eingegeben wurde 
            if(trim($_POST['Strasse'])=='') 
                $errors[]= "Bitte geben Sie Ihr Strasse ein.";
            // Prüft, ob ein Haus eingegeben wurde 
            if(trim($_POST['Haus'])=='') 
                $errors[]= "Bitte geben Sie Ihr Hausnummer ein.";
            // Prüft, ob der Stadt mindestens 3 Zeichen enthält 
            elseif(strlen(trim($_POST['Haus'])) < 1) 
                $errors[]= "Bitte Geben Sie ihere Haus ein.";
        } 
        // Prüft, ob Fehler aufgetreten sind 
        if(count($errors)){ 
             echo "Ihr Account konnte nicht erstellt werden.<br>\n". 
                  "<br>\n"; 
             foreach($errors as $error) 
                 echo $error."<br>\n"; 
             echo "<br>\n". 
                  "Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Registrierungsformular</a>\n";
        } 
        else{ 
            // Daten in die Datenbanktabelle einfügen 
            $sql = "INSERT INTO 
                           User 
                            (Nickname, 
                             Email, 
                             Passwort,
                             Registrierungsdatum, 
                             Name, 
                             Geschlecht, 
                             Vorname, 
                             Geburtsdatum, 
                             Postleitzahl, 
                             Stadt, 
                             Strasse,
                             Haus
                            ) 
                    VALUES 
                            ('".mysql_real_escape_string(trim($_POST['Nickname']))."',
                             '".mysql_real_escape_string(trim($_POST['Email']))."',
                             '".md5(trim($_POST['Passwort']))."', 
                             CURDATE(), 
                             '".mysql_real_escape_string(trim($_POST['Name']))."',
                             '".mysql_real_escape_string(trim($_POST['Geschlecht']))."',
                             '".mysql_real_escape_string(trim($_POST['Vorname']))."',
                             '".mysql_real_escape_string($datum)."', 
                             '".mysql_real_escape_string(trim($_POST['Postleitzahl']))."',
                             '".mysql_real_escape_string(trim($_POST['Stadt']))."',
                             '".mysql_real_escape_string(trim($_POST['Strasse']))."'
                             '".mysql_real_escape_string(trim($_POST['Haus']))."'
                            ) 
                   "; 
            mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error()); 
            echo "Vielen Dank!\n<br>". 
                 "Ihr Accout wurde erfolgreich erstellt.\n<br>". 
                 "Sie können sich nun mit Ihren Daten einloggen.\n<br>". 
                 "<a href=\"login.php\">Zum Login</a>\n"; 
        } 
    } 
    else { 
        echo "<form ". 
             " name=\"Registrierung\" ". 
             " action=\"".$_SERVER['PHP_SELF']."\" ". 
             " method=\"post\" ". 
             " accept-charset=\"ISO-8859-1\">\n"; 
        echo "<h5>USER Daten</h5>\n"; 
        echo "<span style=\"font-weight:bold;\" ". 
             " title=\"min.4\nmax.32\nNur Zahlen, Buchstaben und Unterstrich\">\n".
             "Nickname :\n". 
             "</span>\n"; 
        echo "<input type=\"text\" name=\"Nickname\" maxlength=\"32\">\n"; 
        echo "<br>\n"; 
        echo "<span style=\"font-weight:bold;\" ". 
             " title=\"min.6\">\n". 
             "Passwort :\n". 
             "</span>\n"; 
        echo "<input type=\"password\" name=\"Passwort\">\n"; 
        echo "<br>\n"; 
        echo "<span style=\"font-weight:bold;\" ". 
             " title=\"min.6\">\n". 
             "Passwort wiederholen:\n". 
             "</span>\n"; 
        echo "<input type=\"password\" name=\"Passwortwiederholung\">\n"; 
        echo "<br>\n"; 
        echo "<span style=\"font-weight:bold;\" ". 
             " title=\"Ihre.Adresse@Ihr-Anbieter.de\">\n". 
             "Email-Adresse:\n". 
             "</span>\n"; 
        echo "<input type=\"text\" name=\"Email\" maxlength=\"70\">\n"; 
        echo "<br>\n"; 
        echo "<h5>Personliche Daten</h5>\n";
        echo "<span style=\"font-weight:bold;\">\n". 
             "Geschlecht :\n". 
             "</span>\n"; 
        echo "<input type=\"radio\" name=\"Geschlecht\" value=\"0\"> Mannlich\n"; 
        echo "<input type=\"radio\" name=\"Geschlecht\" value=\"1\">  Weiblich\n";
        echo "<br>\n"; 
        echo "<span style=\"font-weight:bold;\" ". 
             " title=\"min.2\nmax.32\nNur Zahlen, Buchstaben und Unterstrich\">\n".
             "Name :\n". 
             "</span>\n"; 
        echo "<input type=\"text\" name=\"Name\" maxlength=\"32\">\n"; 
        echo "<br>\n"; 
        echo "<span style=\"font-weight:bold;\" ". 
             " title=\"min.3\nmax.32\nNur Zahlen Buchstaben und Unterstrich\">\n".
             "Vorname :\n". 
             "</span>\n"; 
        echo "<input type=\"text\" name=\"Vorname\" maxlength=\"32\">\n"; 
        echo "<br>\n"; 
        echo "<span style=\"font-weight:bold;\">\n". 
             "Geburtsdatum :\n". 
             "</span>\n"; 
        $Monatsnamen = array(1 => 'Januar',
                         2 => 'Februar',
                         3 => 'März',
                         4 => 'April',
                         5 => 'Mai',
                         6 => 'Juni',
                         7 => 'Juli',
                         8 => 'August',
                         9 => 'September',
                         10 => 'Oktober',
                         11 => 'November',
                         12 => 'Dezember'
                   );
 
    echo "       <select name=\"Tag\">\n";
    echo "       <option value=\"0\">Tag</option>\n";
    for($i=1;$i<=31;$i++){
        echo "<option value=\"".$i."\">".$i.".</option>\n";
    }
 
    echo "       </select>\n";
    echo "       <select name=\"Monat\">\n";
    echo "       <option value=\"0\">Monat</option>\n";
    for($i=1;$i<=12;$i++){
        echo "<option value=\"".$i."\">".$Monatsnamen[$i]."</option>\n";
    }
 
    echo "       </select>\n";
    echo "       <select name=\"Jahr\">\n";
    echo "       <option value=\"0\">Jahr</option>\n";
    for($i=2006;$i>=1900;$i--){
        echo "<option value=\"".$i."\">".$i."</option>\n";
    }
    echo "       </select>\n";

        echo "<br>\n"; 
        echo "<span style=\"font-weight:bold;\" ". 
             " title=\"min.1\nmax.32\nNur Zahlen, Buchstaben und Unterstrich\">\n". 
             "Postleitzahl :\n". 
             "</span>\n"; 
        echo "<input type=\"text\" name=\"Postleitzahl\" maxlength=\"70\">\n"; 
        echo "<br>\n"; 
        echo "<span style=\"font-weight:bold;\" ". 
             " title=\"min.4\nmax.32\nNur Zahlen, Buchstaben und Unterstrich\">\n". 
             "Stadt :\n". 
             "</span>\n"; 
        echo "<input type=\"text\" name=\"Stadt\" maxlength=\"70\">\n"; 
        echo "<br>\n"; 
        echo "<span style=\"font-weight:bold;\" ". 
             " title=\"min.1\nmax.32\nNur Zahlen, Buchstaben und Unterstrich\">\n". 
             "Strasse :\n". 
             "</span>\n"; 
        echo "<input type=\"text\" name=\"Strasse\" maxlength=\"70\">\n";
        echo "<span style=\"font-weight:bold;\" ". 
             " title=\"min.1\nmax.32\nNur Zahlen, Buchstaben und Unterstrich\">\n". 
             "Haus :\n". 
             "</span>\n"; 
        echo "<input type=\"text\" name=\"Haus\" size=2 maxlength=\"10\">\n";
        echo "<br>\n";
        echo "<input type=\"submit\" name=\"submit\" value=\"Registrieren\">\n"; 
        echo "<input type=\"reset\" value=\"Zurücksetzen\">\n"; 
        echo "</form>\n"; 
    } 
?>
und Wo Finde ich diese Anzahl
 
Ist das bei dieser Abfrage?

PHP:
$sql = "INSERT INTO 
                           User 
                            (Nickname, 
                             Email, 
                             Passwort,
                             Registrierungsdatum, 
                             Name, 
                             Geschlecht, 
                             Vorname, 
                             Geburtsdatum, 
                             Postleitzahl, 
                             Stadt, 
                             Strasse,
                             Haus
                            ) 
                    VALUES 
                            ('".mysql_real_escape_string(trim($_POST['Nickname']))."',
                             '".mysql_real_escape_string(trim($_POST['Email']))."',
                             '".md5(trim($_POST['Passwort']))."', 
                             CURDATE(), 
                             '".mysql_real_escape_string(trim($_POST['Name']))."',
                             '".mysql_real_escape_string(trim($_POST['Geschlecht']))."',
                             '".mysql_real_escape_string(trim($_POST['Vorname']))."',
                             '".mysql_real_escape_string($datum)."', 
                             '".mysql_real_escape_string(trim($_POST['Postleitzahl']))."',
                             '".mysql_real_escape_string(trim($_POST['Stadt']))."',
                             '".mysql_real_escape_string(trim($_POST['Strasse']))."'
                             '".mysql_real_escape_string(trim($_POST['Haus']))."'
                            ) 
                   ";

Falls ja, mach doch mal ein echo $sql; danach.
Da ist auch etwas falsch mit den Anführungszeichen. Überprüf das mal.
 
mit Echo war nix

Jetz macht er so
Code:
INSERT INTO User (Nickname, Email, Passwort, Registrierungsdatum, Name, Geschlecht, Vorname, Geburtsdatum, Postleitzahl, Stadt, Strasse, Haus ) VALUES ('testtest', 'test@test.de', '827ccb0eea8a706c4c34a16891f84e7b', CURDATE(), 'Test', '0', 'test1', '1990-10-19', 'tegendwo', 'hier', 'nicht bekannt' '123' )
INSERT INTO 
                           User 
                            (Nickname, 
                             Email, 
                             Passwort,
                             Registrierungsdatum, 
                             Name, 
                             Geschlecht, 
                             Vorname, 
                             Geburtsdatum, 
                             Postleitzahl, 
                             Stadt, 
                             Strasse,
                             Haus
                            ) 
                    VALUES 
                            ('testtest',
                             'test@test.de',
                             '827ccb0eea8a706c4c34a16891f84e7b', 
                             CURDATE(), 
                             'Test',
                             '0',
                             'test1',
                             '1990-10-19', 
                             'tegendwo',
                             'hier',
                             'nicht bekannt'
                             '123'
                            ) 
                   
Column count doesn't match value count at row 1
 
Wenn du die Spalte mit Haus angefügt hast, musst du an die Spalte davor ein Komma setzen. Wenn es immer noch nicht geht, hast du einen anderen Fehler eingebaut. Aktuellen Code zeigen bitte.
 
Ja Jetzt Geht ich habe bei SQL Tabelle Name Falsch geschrieben
nur wie kriege ich das weg

INSERT INTO User (Nickname, Email, Passwort, Registrierungsdatum, Name, Geschlecht, Vorname, Geburtsdatum, Postleitzahl, Stadt, Strasse, Haus ) VALUES ('testtest123', 'tshaika@online.de', '827ccb0eea8a706c4c34a16891f84e7b', CURDATE(), 'valeri', '0', 'pflueger', '1990-1-19', '67433', 'haus', 'ttttttttt', '102' ) Vielen Dank!

Vielen Dank!
"Ihr Accout wurde erfolgreich erstellt.
"Sie können sich nun mit Ihren Daten einloggen.
Sie können sich nun mit Ihren Daten einloggen.
Zum Login
 

Neue Beiträge

Zurück