Column count doesn't match value count at row

Fermé
fabieng_45 Messages postés 82 Date d'inscription dimanche 25 mai 2008 Statut Membre Dernière intervention 18 février 2012 - 13 juin 2009 à 17:37
 le père - 13 juin 2009 à 21:44
Bonjour,
e ne comprends pas pourquoi j ai cette phrase lorsque j'ai fini de remplir mon formulaire:
"it doesn't match value count at row 1 "

J ai une page formulaire.php, et une page choix.php ( le bouton valider du formulaire envoie sur choix.php, et c est dans la page choix.php que j'ai la petite phrase!!)

mes scripts:
Formulaire.php:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>formulaire</title>
</head>
<body>
<form method="post" action="choix.php">

<p class="titre">Vos souhaits</p>


<fieldset id="coordonnees">

<label>Etudiant : </label>

<select name="etudiant">
<option value="fabien">Fabien </option>
<option value="adrien">Adrien </option>
<option value="davy">Davy </option>
</select><br>
<br>
<br>
<label>Polyclinique: </label>
<input name="poly" value="peu" type="radio">Peu
<input name="poly" value="normal" type="radio">Normal
<input name="poly" value="beaucoup" type="radio">Beaucoup
</p>
<br>
<label>Patho: </label>
<input name="patho" value="peu" type="radio">Peu
<input name="patho" value="normal" type="radio">Normal
<input name="patho" value="beaucoup" type="radio">Beaucoup
</p>
<br>
<br>
<label>Urgence: </label>
<input name="urgence" value="peu" type="radio">Peu
<input name="urgence" value="normal" type="radio">Normal
<input name="urgence" value="beaucoup" type="radio">Beaucoup
</p>
<br> <br>


<label>Contrats non validés en: </label>
<input name="interets[]" value="paro" type="checkbox">Paro
<input name="interets[]" value="patho" type="checkbox">Patho

<input name="interets[]" value="prothese" type="checkbox">Prothèse
<input name="interets[]" value="valide" type="checkbox">A tout validé
</p>

</fieldset>


<p class="titre">Message</p>


<fieldset id="message">
<textarea name="comments" rows="5" cols="40"></textarea>
</fieldset>


<p id="buttons">
<input value="Envoyer" type="submit">
<input value="Recommencer" type="reset">
</p>


</form>

<form method="post" action="autre.php">
<p id="buttons">
<input value="Voir les autres" type="submit">
</p>
</form>


</body>
</html>

choix.php:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<?php // Maintenant on doit récupérer les 10 dernières entrées de la table
// On se connecte d'abord à MySQL :
mysql_connect("localhost", "root");
mysql_select_db("formulaire");
// On utilise la requête suivante pour récupérer les 10 derniers messages :
$reponse = mysql_query("SELECT * FROM clinique");

$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$msg_ok = "Votre demande a bien été prise en compte.";
$message = $msg_erreur;

// vérification des champs
if (empty($_POST['etudiant']))
$message .= "Votre nom<br/>";
if (empty($_POST['poly']))
$message .= "Vacation polyclinique<br/>";
if (empty($_POST['patho']))
$message .= "Vacation patho<br/>";
if (empty($_POST['urgence']))
$message .= "Vacation urgence<br/>";


// si un champ est vide, on affiche le message d'erreur
if (strlen($message) > strlen($msg_erreur)) {

echo $message;

// sinon c'est ok
} else {

foreach($_POST as $index => $valeur) {
$$index = mysql_real_escape_string(trim($valeur));
}

$interets = $_POST['interets'];
$sqlinterets = '';
for ($i=0; $i<count($interets); $i++)
{
$sqlinterets .= $interets[$i];
$sqlinterets .= ', ';
}

$sql = "INSERT INTO formulaire VALUES ('', '".$etudiant."', '".$poly."', '".$patho."', '".$urgence."', '".$sqlinterets."', '".$message."', now())";
$res = mysql_query($sql);

if ($res) {
echo $msg_ok;
} else {
echo mysql_error();
}

}
?>
</head>


<body>

<table style="text-align: left; margin-left: auto; margin-right: auto; width: 600px;" border="1" cellpadding="2" cellspacing="2">

<tbody>

<tr>

<td style="text-align: center; height: 35px; width: 77px;"><span style="font-weight: bold; font-style: italic; color: rgb(255, 0, 0);">Etudiant</span></td>

<td style="text-align: center; width: 77px;"><small><span style="font-style: italic; color: rgb(255, 0, 0); font-weight: bold;">Polyclinique</span></small></td>

<td style="text-align: center; width: 77px;"><span style="color: rgb(255, 0, 0); font-weight: bold; font-style: italic;">Patho</span></td>
<td style="width: 77px; text-align: center;"><span style="color: rgb(255, 0, 0); font-weight: bold; font-style: italic;">Urgences</span></td>
<td style="width: 77px; text-align: center;"><span style="color: rgb(255, 0, 0); font-weight: bold; font-style: italic;">Contrats</span></td>
<td style="width: 77px; text-align: center;"><span style="color: rgb(255, 0, 0); font-weight: bold; font-style: italic;">Message</span></td>

</tr>


</tbody>
</table>

<?php // Maintenant on doit récupérer les 10 dernières entrées de la table
// On se connecte d'abord à MySQL :
mysql_connect("localhost", "root");
mysql_select_db("formulaire");
// On utilise la requête suivante pour récupérer les 10 derniers messages :
$reponse = mysql_query("SELECT * FROM clinique");
// On se déconnecte de MySQL
mysql_close();
// Puis on fait une boucle pour afficher tous les résultats :
while ($donnees = mysql_fetch_array($reponse) )
{

?>
<table style="width: 600px; text-align: left; margin-left: auto; margin-right: auto;" border="1" cellpadding="2" cellspacing="2">



<tbody>



<tr>



<td style="width: 200px;">


<div style="text-align: center;">
</div>




<p style="text-align: center;"><?php echo $donnees['etudiant']; ?></p>


</td>


<td style="width: 200px;">


<p style="text-align: center;"><?php echo $donnees['poly']; ?></p>


</td>

<td style="width: 200px;">


<p style="text-align: center;"><?php echo $donnees['patho']; ?></p>


</td>




<td style="width: 200px; height: 30px;">


<p style="text-align: center;"><?php echo $donnees['urgence']; ?></p>


</td>

<td style="width: 200px;">


<p style="text-align: center;"><?php echo $donnees['sqlinterets']; ?></p>


</td>

<td style="width: 200px;">


<p style="text-align: center;"><?php echo $donnees['message']; ?></p>


</td>





</tr>






</tbody>
</table>




<?php }
// Fin de la boucle, le script est terminé !
?>
</body>
</html>

Merci

3 réponses

Mimiste Messages postés 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 206
13 juin 2009 à 18:12
Salut

t'insere trop ou pas assez de valeur suivant le nombre de champs de ta table
0
fabieng_45 Messages postés 82 Date d'inscription dimanche 25 mai 2008 Statut Membre Dernière intervention 18 février 2012 5
13 juin 2009 à 20:38
si la table a 7 champs, on est obligé d'inserer 7 valeurs?
0
Bonsoir

Non tu n'es pas obligé. Tu as deux options :
. tu les insères tous avec INSERT INTO table VALUES ( 'valeur1', 'valeur 2', .. TOUTES les valeurs)
ou, si tu ne veux pas mettre toutes les valeurs, il faut préciser lesquelles tu veux mettre (c'est logique, non ?)
INSERT INTO table (champ1, champ3, champ7 ) VALUES ( 'valeur1', 'valeur3', 'valeur7')
0