Ciao a tutti,
Allora ho eseguito una prova per la memorizzazione dati nonchè della data di nascita strutturata con tre select suggeritomi da tdef, e ho messo come campo $nascita sia nel db che come etichetta, ma mi da il seguente errore quando vado a cliccare su "invio dati"
Inserimento non eseguito. Errore: Column count doesn't match value count at row 1
Cosa vuol dire ????? Questo è un parziale del listato:
Codice PHP:
<form method="POST" autocomplete ="off" action="<?php $_SERVER['PHP_SELF'] ?>">
<p> <p> <p>
<label for =campo-cognome"> Cognome: </label> <input type ="text" name = "cognome" required />
</p> </p> </p>
<p> <p><label for =campo-nome"> Nome: </label> <input type ="text" name = "nome" required/> </p></p>
Selezionare la data di nascita (gg/mm/yyyy):
<?php
// formazione dei tre select:
// giorno
echo '<label for="giorno"></option><select name="giorno" required>';
$option = "<option value=\"0\">Scegli il giorno:</option> \n";
for ( $i = 1; $i <= 31; $i++ ) $option .= "<option value=\"$i\">$i</option>\n";
echo $option . "</select>\n";
unset( $option );
// mese
$mese = array( '','01','02','03','04','05','06','07','08','09','10','11','12' );
echo '<label for="mese"> </option><select name="mese">';
$option = "<option value=\"0\">Scegli il mese: <p></option> \n";
for ( $i = 1; $i <= 12; $i++ ) $option .= "<option value=\"$i\">{$mese[$i]}</option>\n";
echo $option . "</select>\n";
unset( $option );
// anno
echo '<label for="anno"> </option><select name="anno">';
$option = "<option value=\"0\">Scegli l'anno</option>\n";
for ( $i = date( 'Y' ); $i > 1900; $i-- ) $option .= "<option value=\"$i\">$i</option>\n";
echo $option . "</select>\n";
unset( $option );
switch ( (int)$input['mese'] ) {
case 4: case 6: case 9: case 11: // Mesi di 30 giorni
if ( (int)$input['giorno'] > 30 ) {
$errore = 'Controlla il tuo giorno di nascita, il mese di ' . $mesi[ (int)$input['mese'] ] . ' che hai inserito, ha al massimo 30 giorni.';
}
break;
case 2: // Febbraio
if (( (int)$input['anno'] % 4 == 0 && (int)$input['anno'] % 100 !=0 ) || (int)$input['anno'] % 400 == 0 ) {
if ( (int)$input['giorno'] > 29 ) {
$errore = 'Controlla il tuo giorno di nascita, il mese di ' . $mesi[ (int)$input['mese'] ] . ' ha al massimo 29 giorni per l\'anno ' .$input['anno'] . ' che è bisestile';
}
} else {
if ( (int)$input['giorno'] > 28 ) {
$errore = 'Controlla il tuo giorno di nascita, il mese di ' . $mesi[ (int)$input['mese'] ] . ' ha al massimo 28 giorni.';
}
}
break;
}
?>
</select>
<p> <p><label for =campo-username"> Username: </label> <input type ="text" name = "username" required/> </p></p>
<p> <p><label for =campo-email"> E-Mail: </label> <input type ="email" name = "email" required/> </p></p>
<p> <p><label for =campo-ripemail"> Ripeti-Email: </label> <input type ="email" name = "ripemail" required/> </p></p>
<p> <p><label for =campo-password"> Password: </label> <input type ="password" name = "password" required/> </p></p>
<p> <p><label for =campo-rippassword"> Ripeti-password: </label> <input type ="password" name = "rippassword" required/> </p></p>
<p> <p><label for =campo-nascita"> Selezionare la data di nascita: </label>
<div align ="center">
<input type="submit" name="reg" value="Invio Iscrizione" />
</div>
</div>
</form>
</head>
<body>
poi qui sotto c'è l'insert:
Codice PHP:
if(!empty($_POST)){
# Inizializzazioni variabili
$id = mysqli_real_escape_string($con, $_POST['id']);
$cognome = mysqli_real_escape_string($con, $_POST['cognome']);
$nome = mysqli_real_escape_string($con, $_POST['nome']);
$nascita = mysqli_real_escape_string($con, $_POST['nascita']);
$nazionalita = mysqli_real_escape_string($con, $_POST['nazionalita']);
$citta = mysqli_real_escape_string($con, $_POST['citta']);
$prov = mysqli_real_escape_string($con, $_POST['prov']);
$username = mysqli_real_escape_string($con, $_POST['username']);
$email = mysqli_real_escape_string($con, $_POST['email']);
$ripemail = mysqli_real_escape_string($con, $_POST['ripemail']);
$password = mysqli_real_escape_string($con, $_POST['password']);
$rippassword = mysqli_real_escape_string($con, $_POST['rippassword']);
.....
$query=("INSERT INTO utenti (cognome, nome, nascita, nazionalità, citta, prov, email, password, nascita) "
. "VALUES('$cognome','$nome','$nascita','$username','$password')");
$result=mysqli_query($con,$query);
if($result){
echo("<p> Inserimento avvenuto correttamente <p>");
} else{
echo("Inserimento non eseguito. Errore: ".mysqli_error($con));
}
}
?>
Ovviamente alcuni dati ancora non ci sono ma me li sono preparati come città, nazionalità, prov. Dove sbaglio ??? Grazie spero che qualcuno mi possa aiutare. Grazie e buon pranzo a tutti.