DB erhält neues Feld. Insert klappt nicht mehr

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • DB erhält neues Feld. Insert klappt nicht mehr

    Hallo Leute,
    schlagt bitte die Hände nicht über den Kopf, denn ich bin wieder da. Mein neues Problem:
    Ich habe ja mit PHP ein Formular gemacht, dass beim abschicken in eine MYSQL Datenbank gespeichert wird. Klappt auch alles wunderbar. Nur wenn ich in meiner datenbank ein neues Feld in meine Tabelle anlege, dann geht mein Script plötzlich nicht mehr. Ich denke es liegt an meinem PHP Script, daher habe ins PHP-Forum gepostet. Hoffe ihr finden den Fehler!

    Quellcode

    1. $host = "localhost";
    2. $user = "***";
    3. $password = "***";
    4. $dbname = "***";
    5. $tabelle ="kunden";
    6. $dbverbindung = mysql_connect ($host, $user, $password);
    7. $name = $_POST['name'];
    8. $vorname = $_POST['vorname'];
    9. $strasse = $_POST['strasse'];
    10. $hausnr = $_POST['hausnr'];
    11. $plz = $_POST['plz'];
    12. $ort = $_POST['ort'];
    13. $geburtstag = $_POST['geburtstag'];
    14. $telefonp = $_POST['telefonp'];
    15. $telefong = $_POST['telefong'];
    16. $handy = $_POST['handy'];
    17. $fax = $_POST['fax'];
    18. $mail = $_POST['mail'];
    19. $kind1 = $_POST['kind1'];
    20. $kind2 = $_POST['kind2'];
    21. $kind3 = $_POST['kind3'];
    22. $kind4 = $_POST['kind4'];
    23. $kind5 = $_POST['kind5'];
    24. $unterhaltz = $_POST['unterhaltz'];
    25. $unterhalte = $_POST['unterhalte'];
    26. $hochzeit = $_POST['hochzeit'];
    27. $netto = $_POST['netto'];
    28. $brutto = $_POST['brutto'];
    29. $kaltmiete = $_POST['kaltmiete'];
    30. $warmmiete = $_POST['warmmiete'];
    31. $ek = $_POST['ek'];
    32. $bauart = $_POST['bauart'];
    33. if ($senden) {
    34. $dbanfrage = "INSERT into $tabelle values ('0', '$name', '$vorname', '$strasse', '$hausnr', '$plz', '$ort', '$geburtstag', '$telefonp', '$telefong', '$handy', '$fax', '$mail', '$kind1', '$kind2', '$kind3', '$kind4', '$kind5', '$unterhaltz', '$unterhalte', '$hochzeit', '$netto', '$brutto', '$kaltmiete', '$warmmiete', '$ek', '$bauart')";
    35. if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung)) {
    36. print ("Datenbankeintrag erfolgreich.");
    37. } else {
    38. print ("Es traten Probleme auf.");
    39. }
    40. mysql_close ($dbverbindung);
    41. }
    Alles anzeigen
  • Aha dann kommt: "Column count doesn't match value count at row 1 "
    Verstehe ich nicht. Warum interessiert es mein Script wieviele Felder meine Tabelle in der Datenbank hat? Es fängt doch vorne an zu füllen und hört dann irgedwann auf, ob dahinter noch weitere Felder kommen ist doch egal! Naja anscheinend nicht.

    Ich dachte, da ich in meinem Script jedem Feld einen Inhalt zuweise, wäre es vollkommen egal wieviele Felder tatsächlich existieren! Vor allem auch weil immer angeben wird welches Feld beschrieben werden soll.

    Leider brauche ich, aber weitere Felder in der Tabelle "kunden". Ich habe noch die datei wunschgebiete.php in der mit checkboxen Stadtteile gewählt werden können, die in der Tabelle "kunden" gespeichert werden sollen. Als Typ denke ich, muss ich da int nehmen, damit dort 0 oder 1 gespeichert wird.
  • Du bist der größte!
    Vorher:

    Quellcode

    1. $dbanfrage = "INSERT into $tabelle values ('0', '$name', '$vorname', '$strasse', '$hausnr', '$plz', '$ort', '$geburtstag', '$telefonp', '$telefong', '$handy', '$fax', '$mail', '$kind1', '$kind2', '$kind3', '$kind4', '$kind5', '$unterhaltz', '$unterhalte', '$hochzeit', '$netto', '$brutto', '$kaltmiete', '$warmmiete', '$ek', '$bauart')";


    Nachher (richtig):

    Quellcode

    1. $dbanfrage = "INSERT INTO $tabelle (id, name, vorname, strasse, hausnr, plz, ort, geburtstag, telefonp, telefong, handy, fax, mail, kind1, kind2, kind3, kind4, kind5, unterhaltz, unterhalte, hochzeit, netto, brutto, kaltmiete, warmmiete, ek, bauart) VALUES ('0', '$name', '$vorname', '$strasse', '$hausnr', '$plz', '$ort', '$geburtstag', '$telefonp', '$telefong', '$handy', '$fax', '$mail', '$kind1', '$kind2', '$kind3', '$kind4', '$kind5', '$unterhaltz', '$unterhalte', '$hochzeit', '$netto', '$brutto', '$kaltmiete', '$warmmiete', '$ek', '$bauart')";


    Und jetzt kann ich sogar 100 Felder anlegen, und es funktioniert! Danke