Champs id auto_increment [Résolu]

Signaler
Messages postés
54
Date d'inscription
mercredi 4 mai 2005
Statut
Membre
Dernière intervention
10 septembre 2012
-
Messages postés
505
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
20 mars 2012
-
Bonjour,

J'ai fait une table avec 22 champs, et un formulaire (1) pour les remplir.
Puis, pour les besoins d'un formulaire (2) de recherche, j'ai rajouté un champs id en auto_increment au debut de la table.
Du coup, j'ai une erreur quand j'utilise le formulaire (1) :

Erreur SQL ! Column count doesn't match value count at row 1

Apparemment le problème vient de ce nouveau champs dans la table. Je ne sais pas comment modifier le formulaire pour que ca marche, sachant que l'id n'est pas un paramètre à rentrer par l'utilisateur.

Auriez vous une idée pour résoudre ce problème ?





DapORoty

6 réponses

Messages postés
505
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
20 mars 2012

le probleme est ds ton insert tu fs :

<?
$sql = "INSERT INTO modernes (faciale,mellesime,..........,remarques)
VALUES('".$_POST["faciale"]."','".addslashes($_POST["millesime"])."','".addslashes($_POST["atelier"])."','".addslashes($_POST["frappe"])."','".addslashes($_POST["graveur"])."','".addslashes($_POST["nature"])."','".addslashes($_POST["poids"])."','".addslashes($_POST["diamètre"])."','".addslashes($_POST["tranche"])."','".addslashes($_POST["axe"])."','".addslashes($_POST["gravureavers"])."','".addslashes($_POST["gravurerevers"])."','".addslashes($_POST["reference"])."','".addslashes($_POST["tirage"])."','".addslashes($_POST["photo"])."','".addslashes($_POST["collection"])."','".addslashes($_POST["vente"])."','".addslashes($_POST["date"])."','".addslashes($_POST["localite"])."','".addslashes($_POST["etat"])."','".addslashes($_POST["valeur"])."','".addslashes($_POST["commentaires"])."','".addslashes($_POST["remarques"])."')";
mysql_query($sql)
or die('Erreur SQL !'.$sql.''.mysql_error());

echo '

<center>La nouvelle référence a été enregistrée avec succès.
[javascript:history.back() RETOUR]</center>';
mysql_close();

?>
 puisque tu mets pas la valeur du champs ID, alors tu dois specifier les champs oû la requette insert fera une insertion ....
ou tu fs comme ça :
$sql = "INSERT INTO modernes VALUES(VALUES( ' ' , ' ''.addslashes(.......
Messages postés
505
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
20 mars 2012

Pour le formulaire (1) j ai compris comment son fonctionnement, mais pour le formulaire (2) c koi son utilité?.
Cette erreur indique que la requête SQL et la structure d'une des tables ne concordent pas.
Messages postés
505
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
20 mars 2012

Merci d'ecrire la requette et les champs des formulaires ici !
Messages postés
505
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
20 mars 2012

Ca vient peut-être bien de ton INSERT, le nombre de colonnes que tu cherches à insérer ne correspond pas avec la table. Il faudrait vérifier dans la base.
Messages postés
54
Date d'inscription
mercredi 4 mai 2005
Statut
Membre
Dernière intervention
10 septembre 2012

Le problème est bien la, il y a 23 champs dans le formulaire et 24 dans la table (23 +  id). Le nombre de champs est discordant, cependant, il n'y a que 23 champs destinés à l'utilisateur puisque le champs id est auto_increment.
Voici le fichier valide.php appelé par le formulaire (1).

<?PHP


include("_connexion.php"); ?>


<?
$sql = "INSERT INTO modernes
VALUES('".$_POST["faciale"]."','".addslashes($_POST["millesime"])."','".addslashes($_POST["atelier"])."','".addslashes($_POST["frappe"])."','".addslashes($_POST["graveur"])."','".addslashes($_POST["nature"])."','".addslashes($_POST["poids"])."','".addslashes($_POST["diamètre"])."','".addslashes($_POST["tranche"])."','".addslashes($_POST["axe"])."','".addslashes($_POST["gravureavers"])."','".addslashes($_POST["gravurerevers"])."','".addslashes($_POST["reference"])."','".addslashes($_POST["tirage"])."','".addslashes($_POST["photo"])."','".addslashes($_POST["collection"])."','".addslashes($_POST["vente"])."','".addslashes($_POST["date"])."','".addslashes($_POST["localite"])."','".addslashes($_POST["etat"])."','".addslashes($_POST["valeur"])."','".addslashes($_POST["commentaires"])."','".addslashes($_POST["remarques"])."')";
mysql_query($sql)
or die('Erreur SQL !'.$sql.''.mysql_error());


echo '

<center>La nouvelle référence a été enregistrée avec succès.
[javascript:history.back() RETOUR]</center>';
mysql_close();


?>

Le formulaire (2), indépendant, est un formulaire pour rechercher un enregistrement dans la base avec trie sélectif et c'est pour lui que j'ai rajouté un champ id dans la table.

Il y a certainement une modification a faire dans le fichier exposé ci-dessus.





DapORoty
Messages postés
505
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
20 mars 2012

donc ça marche !
bon courage !.
n hesites pas de mettre tes problemes ici !