Column count doesn't match value count at row

Résolu
Bonjour,

Je suis en train de créer un espace membre, en php et j'ai une erreur que je ne comprend pas qui s'affiche :

insert into egw_agw_accounts values (1,"qzkqsa6l7uppka0f602y","brutus","tagaok12","brutus.mechant@gmail.com")Column count doesn't match value count at row 1.

Voici le tronçons de code concérné:

                                // CREATION D'UN IDENTIFIANT ALEATOIRE
                                $taille = 20;
                                $lettres = "abcdefghijklmnopqrstuvwxyz0123456789";
                                srand(time());
                                for ($i=0;$i<$taille;$i++)
                                {
                                    $id.=substr($lettres,(rand()%(strlen($lettres))),1);
                                }

                                // ON RECHERCHE L'ID MAXIMUM DE LA TABLE
                                $requete=mysql_db_query($sql_bdd,"select max(account_id) from egw_agw_accounts",$db_link) or die(mysql_error());
                                $idmax=mysql_result($requete,0,"max(account_id)");

                                // INSERTION DANS LA TABLE
                                $idnew=$idmax+1;
                                echo "insert into egw_agw_accounts values ($idnew,\"$id\",\"$pseudo_membre\",\"$passe_membre\",\"$email\")";
                                $requete=mysql_db_query($sql_bdd,"insert into egw_agw_accounts values ($idnew,\"$id\",\"$pseudo_membre\",\"$passe_membre\",\"$email\")",$db_link) or die(mysql_error());


                                // CHAMPS SUPLEMENTAIRES, compl&#65533;tez la requ&#65533;te pr&#65533;c&#65533;dente en ajoutant les variables et en respectant l'ordre des colonnes de la table. Exemple :
                                // insert into membre values ($idnew,\"$id\",\"$pseudo_membre\",\"$passe_membre\",\"$email\",\"$ville\")
                                //
                                // REDIRECTION VERS LA PAGE D'ENTREE DE L'ESPACE MEMBRE
                                echo "Merci, vous &#65533;tes bien enregistr&#65533;. Cliquez <a href=\"$zone_membre?id=$id\">ici</a> pour entrer dans votre espace priv&#65533;.";


Merci pour l'attention que vous porterez à mon soucis
Configuration: Linux
Firefox 3.0.10

6 réponses

  1. Ca veut dire que dans ta requete d'insertion tu as mis trop/pas assez de valeurs à mettre dans la table (il doit te manquer un champs ou tu en as un de trop)

    on peut voir comment est faite ta table egw_agw_accounts ?
    1. Oui bien sure , la voici :

      egw_agw_accounts nom de la table
      account_id identifiant d'un utilisateur
      account_name représentant le nom d’utilisateur du visiteur
      account_pwd mot de passe d'un utilisateur
      account_mail représentant l’adresse e-mail du visiteur
      account_inscription représentant le timestamp de la date d’inscription
      account_active nous informera si le compte est actif ou non
      account_type type du compte utilisateur (client, ou salarié)
      account_clef_activation représentera la clef permettant d’activer le compte utilisateur

      Que dois je faire? suis-je vraiment obligé de mettre tout les champs dans mon insert ?
      1. Non, tu peux aussi définir les champs de la table que tu veux remplir
        par exemple là ca donnerai quelquechose du genre :

        insert into egw_agw_accounts(account_id,account_clef_activation,account_name,account_pwd,account_mail) values (1,"qzkqsa6l7uppka0f602y","brutus","tagaok12","brutus.mechant@gmail.com")

        (je suppose que qzkqsa6l7uppka0f602y correspond à la clef d'activation ^^)
        1. C'est bon j'ai résolut le problème :D!

          Maintenant j'au une petite question, comment faire pour que le message suivant ne s'affiche pas ainsi:
           Merci, vous êtes bien enregistré. Cliquez ici pour entrer dans votre espace privé. 


          mais ainsi :
           Merci, vous êtes bien enregistré. Cliquez ici pour entrer dans votre espace privé. 
          1. Une solution serait de définir le charset Windows-1252 :

            dans ton head, tu rajoutes la ligne suivante :
            <meta http-equiv="Content-type" content="text/html;charset=WINDOWS-1252" />