IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

MySQL - PHP Erreur Column count doesn't match value count at row 1


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 65
    Points : 31
    Points
    31
    Par défaut MySQL - PHP Erreur Column count doesn't match value count at row 1
    Bonjour a tous,
    en souhaitant récupérer des valeurs d'un formulaires d'une page afin de les insérer dans ma bdd je tombe sur ce message d'erreur :
    Array ( [0] => 21S01 [1] => 1136 [2] => Column count doesn't match value count at row 1 ).
    J'ai essayé de lire un peu de doc sur ce genre d'erreur qui semble être dû au fait que les colonnes ne soient pas remplies convenablement.

    Mon code : formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    		<h1> Ajouter un contact </h1>
     
    	<form action="traitementajoutcontact.php" method="post">
     
    		<p> Les informations suivies d'un symbole * sont a compléter obligatoirement </p>
     
    			<label for="contact_nom"> Nom : *</label> <!-- Nom du contact -->  
    			<input type= "text" name= "contact_nom"> </br>
     
    			<label for="contact_prenom"> Prenom : * </label> <!-- Prenom du contact -->
    			<input type="text" name="contact_prenom"> </br>
     
    			<label for="contact_numtel"> Numéro de téléphone fixe : </label> <!-- Numéro du contact -->
    			<input type="text" name="contact_numtel" minlength="9" maxlength="14"> </br>
     
    			<label for="contact_numtelmobil"> Numéro de téléphone mobile : </label> <!-- Rôle du contact -->
    			<input type="text" name="contact_numtelmobil" minlength="9" maxlength="14"> </br>
     
    			<label for="contact_email"> Adresse Email : </label> <!-- Email du contact -->
    			<input type="email" name="contact_email"> </br>
     
    			<label for="contact_adresse"> Adresse : </label> <!-- Adresse du contact (à modifier ajouter champ cp/ville/...) -->
    			<input type="text" name="contact_adresse"> </br>
     
    			<label for="contact_cp"> Code Postal : </label> <!-- Code postal du contact -->
    			<input type="number" name="contact_cp" min="0"> </br>
     
    			<label for="contact_ville"> Ville : </label> <!-- Vile du contact -->
    			<input type="text" name="contact_ville"> </br>
     
    			<label for="contact_association"> Association : </label> 
    			<select name="contact_association" id="contact_association">
    				<option> </option> <!-- Ajout d'une option vide -->
    				<?php
    				$reponse = $bdd->query('SELECT * FROM association');
    				while($donnees = $reponse->fetch())
    				{
    					?>
    					<option value="<?php echo $donnees['ID']; ?>"> <?php echo $donnees['ID'] ." ". $donnees['LIBELLE']; ?> </option> 
    					<?php
    				}
    				?>
    			</select> </br>	
     
    			<label for="contact_activite"> Activité : </label>
    			<select name="contact_activite" id="contact_activite">					
    				<option> </option> <!-- Ajout d'une option vide -->
    				<?php
    				$reponse2 = $bdd->query('SELECT * FROM activite');
    				while ($donnees2 = $reponse2->fetch())
    				{
    					?>
    					<option value="<?php echo $donnees2['ID']; ?>"> <?php echo $donnees2['ID'] ." ". $donnees2['LIBELLE']; ?> </option>
    					<?php
    				}
    				?>
    				</select> </br>	
     
    			</br>
                <input type= "submit" value= "Valider"> </br>
     
    	</form>
    Ma page de traitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    	<?php 
    	include 'connectionbdd.php'; // permet la connection à la base de données grâce au fichier connectionbdd.php
     
    	$testnom_contact = !empty($_POST['contact_nom']) ? $_POST['contact_nom'] : NULL; // On regarde si le champ est rempli ou non
    	$testprenom_contact = !empty($_POST['contact_prenom']) ? $_POST['contact_prenom'] : NULL;
     
    	$contact_nom = $_POST['contact_nom'];
    	$contact_prenom = $_POST['contact_prenom'];
    	$contact_numtel = $_POST['contact_numtel'];
    	$contact_numtelmobil = $_POST['contact_numtelmobil'];
    	$contact_email = $_POST['contact_email'];
    	$contact_adresse = $_POST['contact_adresse'];
    	$contact_cp = $_POST['contact_cp'];
    	$contact_ville = $_POST['contact_ville'];
    	$contact_association = $_POST['contact_association'];
    	$contact_activite = $_POST['contact_activite'];
     
    	$req = $bdd->prepare('SELECT * FROM contact WHERE NOM = :nom'); // Permet de vérifier que le nom ne soit pas déjà entré
    	$req->bindValue(':nom',$_POST['contact_nom'], PDO::PARAM_STR);
    	$req->execute();
    	$data=$req->fetch();
     
    	if($testnom_contact==NULL || $testprenom_contact==NULL) // Si les champs obligatoire (*) ne sont pas remplis -> message d'erreur
    	{
    		$message = '<p> Des renseignements manquent, essayez de nouveau.';
    		// include 'ajoutcontact.php';
    	}
    	elseif($data['NOM']==$contact_nom AND $data['PRENOM']==$contact_prenom) // Sinon si les informations sont déjà entrées --> message d'erreur
    	{
    		$message = '<p> Un contact de cette association possède déjà ces informations </p>';
    	}
    	else // Si aucun soucis --> met les informations dans la base de données
    	{ 
    		$req2 = $bdd->prepare('INSERT INTO contact(NOM, PRENOM, NUMTEL, NUMTELMOBIL, EMAIL, ADRESSE, CP, VILLE, ID_ASSOCIATION, ID_ACTIVITE) VALUES(:NOM, :PRENOM, :NUMTEL, :NUMTELMOBIL :EMAIL, :ADRESSE, :CP, :VILLE, :ID_ASSOCIATION, :ID_ACTIVITE)'); // prépare une requête d'insertion
    		$req2->execute(array('NOM' => $contact_nom, 'PRENOM' => $contact_prenom, 'NUMTEL' => $contact_numtel, 'NUMTELMOBIL' => $contact_numtelmobil, 'EMAIL' => $contact_email, 'ADRESSE' => $contact_adresse, 'CP' => $contact_cp, 'VILLE' => $contact_ville, 'ID_ASSOCIATION' => $contact_association, 'ID_ACTIVITE' => $contact_activite));
    		print_r($req2->errorInfo());
    		$message = '<p> Le contact ' . $contact_nom . ' a été ajouté avec succès </p>';
    	}
    	echo $message; // Affiche le message correspondant 
    	?>
    Le but de ces pages et de récupérer un formulaire pour l'ajout d'un contact et de l'entrer dans la base de données.
    Le formulaire récupère bien les données (testé avec echo $nomdonnees).
    Le problème est-il dû à un problème dans la table d'insertion ? Je suis allé voir de ce côté là, il ne semble pas avoir de faute au niveau des champs entrés dans la requête mais peut-être que les types de variables sont mal choisis ?

    Voici la configuration de la table ou les données doivent être ajoutées :
    Nom : pbcontact.png
Affichages : 363
Taille : 26,7 Ko

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    vous avez oublié une virgule après ":NUMTELMOBIL" dans la requête d'insertion.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 65
    Points : 31
    Points
    31
    Par défaut
    Merci cela fonctionne !
    Toute la matinée j'ai cherché sans trouvé ce qui manquait ... Je me suis trop focalisé sur le nom des variables et pas assez sur la syntaxe.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Message d'erreur "Column count doesn't match value count at row 1"
    Par loviso dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 21/04/2010, 00h07
  2. Réponses: 7
    Dernier message: 06/10/2007, 00h17
  3. [MySQL] #1136 - Column count doesn't match value count at row 1
    Par LestoK dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 13/07/2007, 11h18
  4. Réponses: 4
    Dernier message: 19/04/2007, 22h37
  5. Réponses: 2
    Dernier message: 23/03/2007, 15h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo