Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1216 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  message d'erreur inconnu

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

message d'erreur inconnu

n°1304927
flock86
oh non les gars pas le slip!
Posté le 14-02-2006 à 10:05:33  profilanswer
 

Salut à tous!!
 
Voilà j'ai un message d'erreur sur des requetes sql, qui sont très longues.
 
j'ai mis or die (mysql_error()); à la fin de chaque requete. sinon ça ne m'affichait pas d'erreur.
 
voici ce que j'ai :  
 
"Column count doesn't match value count at row1"
 
c'est la première fois que je suis confronté à ce message.
quelqu'un peut-il m'expliquer ce que ça veut dire?
 
 
merci !!
 

mood
Publicité
Posté le 14-02-2006 à 10:05:33  profilanswer
 

n°1304944
anapajari
s/travail/glanding on hfr/gs;
Posté le 14-02-2006 à 10:19:52  profilanswer
 

a vue de nez je dirais que tu fais un select soit pour alimenter les valeurs d'un update ou d'un insert.
Et la tu n'as pas le bon nombre de colonnes dans ton select.

n°1304948
flock86
oh non les gars pas le slip!
Posté le 14-02-2006 à 10:28:19  profilanswer
 

j'ai bel et bien fait un select pour alimenter un insert.
je vais regarder le nombre de colonnes dans mon select merci!!

n°1304980
flock86
oh non les gars pas le slip!
Posté le 14-02-2006 à 10:50:10  profilanswer
 

anapajari a écrit :

a vue de nez je dirais que tu fais un select soit pour alimenter les valeurs d'un update ou d'un insert.
Et la tu n'as pas le bon nombre de colonnes dans ton select.


 
j'ai vérifié j'ai bien 98 champs à remplir, et 98 donnees qui le remplissent, à partir d'un select *.
donc il ya un problème persistant et je vois vraiment pas d'où ça vient.
 
ma table tp_1 fait 98 champs et ma table tp_historique en fait 99. Le seul champ supplémentaire est une date d'intégration qui n'est pas encore réalisée niveau php (juste un get date).
en fait tp_historique n'est juste qu'une copie de tp_fdv1 avec un champs supplémentaire, celui de la date. ma requete sql a peut-être moyen d'être simplifiée?  
 
je sais que c'est la requete 3 qui foire (apparemment car quand je lui vire le die mysql il n'y a plus d'erreur)
pouvez m'aider sur ce coup svp?
voici mon code :  

Code :
  1. <?
  2. mysql_connect("localhost", "root", "" );
  3. mysql_select_db("carte_demarchage" );
  4. //identifiant prédéterminé (normalement un $_POST mais bon c'est une page de test
  5. //selectionne l'identifiant de la table historisation
  6. $requete1 = mysql_query ('SELECT * FROM tp_fdv1')or die(mysql_error());
  7. //les identifiants sont mis en tableau pour la table historisation (fdv)  
  8. while ($donnees1 = mysql_fetch_array ($requete1))
  9. {
  10. //selectionne les identifiants de la table édition
  11. $requete0 = mysql_query ('SELECT * FROM tp_edition')or die(mysql_error());
  12. while ($donnees0 = mysql_fetch_array ($requete0))//while1 : boucle array table edition
  13. { //si l'identifiant de la table historisation(fdv)  est = à identifiant table edition
  14. if ($donnees0['Identifiant']==$donnees1['Identifiant'])
  15. {//$requete= mysql_query ('SELECT * FROM tablehistorisation');
  16. //$donnees = mysql_fetch_array($requete); //while2 array des donnes table historisation (fdv)
  17. //jusque là tout va bien
  18. //insere dans la table historique les donnees qui proviennent de la table historisation(fdv)  
  19. //requete 3 pb VALUES à completer depuis dateenvoicoliss
  20. $requete3= mysql_query ("INSERT INTO tp_historique (id, CodeRemettant, LibRemettant, CodeCRDec, LibCRDec, CodeAction, Identifiant, NumeroDemarcheur, NomNaissance, NomUsuel, Prenom, Sexe, DEX, LibDEX, CS, Lib_CS, Ligne1_CS, Ligne2_CS, CP_CS, Localite_CS, Pays_CS, GP, LibGP, DPT, LibDPT, Entite, LibEntite, Ligne1, Ligne2, CodePostal, Localite, Pays_Adresse, NatureOperations, DenominationSociale, Ligne1_PM, Ligne2_PM, CodePostal_PM, Localite_PM, Pays_PM, DateExpiration, CodeFonction, LibFonction, NomRTB, PrenomRTB, Ligne1adrRTB, Ligne2adrRTB, Ligne3adrRTB, DateTraitement, DateEditCarte, NumeroLR, DateEnvoiLR, EnvoiEnAR, DateEnvoiAR, DateRetAR, NumeroColiss, DateEnvoiColiss, DateRemiseColiss, DateRetDeclaHonneur, DateRetBordereauRemise, RemiseCarte, DatePrevRemiseCarte, NumCarteRetour, DateRetCarte, MotifNonRemise, MotifAutre, AbsenceMoins2Mois, AbsencePlus2Mois, Commentaire, DateIntegr, DatePublipostage, DateRelance, DateRepriseActivite, DateCartePerdue, DateDestructionCarte, DateEnvoiDemandeRetrait, CartePresente, VendeurSorti, DateSortiePerimetre, DateRenvoiBordereau, DateRetour2Bordereau, DateReclamCarte, DateRenvoiCarte, DateRemiseCarte, MotifBordIncorrect, DateRenvoiDeclaHonneur, MotifDeclaHonneurIncorrect, DateRetour2DeclaHonneur, DateRetourDemRetrait, MotifDemRetraitIncorrect, DateRenvoiDemRetrait, DateRenvoi2DemRetrait, DateRetour2DemRetrait, DateRetourBordRetrait, DateRenvoiBordRetrait, MotifBordRetraitIncorrect, MotifBordRetrait, MotifAutreBordRetrait, DateRet2BordRetrait) VALUES('', '".$donnees1['CodeRemettant']."', '".$donnees1['LibRemettant']."', '".$donnees1['CodeCRDec']."', '".$donnees1['LibCRDec']."', '".$donnees1['CodeAction']."', '".$donnees1['Identifiant']."', '".$donnees1['NumeroDemarcheur']."', '".$donnees1['NomNaissance']."', '".$donnees1['NomUsuel']."', '".$donnees1['Prenom']."',  '".$donnees1['Sexe']."', '".$donnees1['DEX']."', '".$donnees1['LibDEX']."', '".$donnees1['CS']."', '".$donnees1['Lib_CS']."', '".$donnees1['Ligne1_CS']."', '".$donnees1['Ligne2_CS']."', '".$donnees1['CP_CS']."', '".$donnees1['Localite_CS']."', '".$donnees1['Pays_CS']."', '".$donnees1['GP']."', '".$donnees1['LibGP']."', '".$donnees1['DPT']."', '".$donnees1['LibDPT']."', '".$donnees1['Entite']."', '".$donnees1['LibEntite']."', '".$donnees1['Ligne1']."', '".$donnees1['Ligne2']."', '".$donnees1['CodePostal']."', '".$donnees1['Localite']."', '".$donnees1['Pays_Adresse']."', '".$donnees1['NatureOperations']."', '".$donnees1['DenominationSociale']."', '".$donnees1['Ligne1_PM']."', '".$donnees1['Ligne2_PM']."', '".$donnees1['CodePostal_PM']."', '".$donnees1['Localite_PM']."', '".$donnees1['Pays_PM']."', '".$donnees1['DateExpiration']."', '".$donnees1['CodeFonction']."', '".$donnees1['LibFonction']."', '".$donnees1['NomRTB']."', '".$donnees1['PrenomRTB']."', '".$donnees1['Ligne1adrRTB']."', '".$donnees1['Ligne2adrRTB']."', '".$donnees1['Ligne3adrRTB']."', '".$donnees1['DateTraitement']."', '".$donnees1['DateEditCarte']."', '".$donnees1['NumeroLR']."', '".$donnees1['DateEnvoiLR']."', '".$donnees1['EnvoiEnAR']."', '".$donnees1['DateEnvoiAR']."', '".$donnees1['DateRetAR']."', '".$donnees1['NumeroColiss']."', '".$donnees1['DateEnvoiColiss']."', '".$donnees1['DateRemiseColiss']."', '".$donnees1['DateRetDeclaHonneur']."', '".$donnees1['DateRetBordereauRemise']."', '".$donnees1['RemiseCarte']."', '".$donnees1['DatePrevRemiseCarte']."', '".$donnees1['NumCarteRetour']."', '".$donnees1['DateRetCarte']."', '".$donnees1['MotifNonRemise']."', '".$donnees1['MotifAutre']."', '".$donnees1['AbsenceMoins2Mois']."', '".$donnees1['AbsencePlus2Mois']."', '".$donnees1['Commentaire']."', '".$donnees1['DateIntegr']."', '".$donnees1['DatePublipostage']."', '".$donnees1['DateRelance']."', '".$donnees1['DateRepriseActivite']."', '".$donnees1['DateCartePerdue']."', '".$donnees1['DateDestructionCarte']."', '".$donnees1['DateEnvoiDemandeRetrait']."', '".$donnees1['CartePresente']."', '".$donnees1['VendeurSorti']."', '".$donnees1['DateSortiePerimetre']."', '".$donnees1['DateSortiePerimetre']."', '".$donnees1['DateRenvoiBordereau']."', '".$donnees1['DateRetour2Bordereau']."', '".$donnees1['DateReclamCarte']."', '".$donnees1['DateRenvoiCarte']."', '".$donnees1['DateRemiseCarte']."', '".$donnees1['MotifBordIncorrect']."', '".$donnees1['DateRenvoiDeclaHonneur']."', '".$donnees1['MotifDeclaHonneurIncorrect']."', '".$donnees1['DateRetour2DeclaHonneur']."', '".$donnees1['DateRetourDemRetrait']."', '".$donnees1['MotifDemRetraitIncorrect']."', '".$donnees1['DateRenvoiDemRetrait']."', '".$donnees1['DateRenvoi2DemRetrait']."', '".$donnees1['DateRetour2DemRetrait']."', '".$donnees1['DateRetourBordRetrait']."', '".$donnees1['DateRenvoiBordRetrait']."', '".$donnees1['MotifBordRetraitIncorrect']."', '".$donnees1['MotifBordRetrait']."', '".$donnees1['MotifAutreBordRetrait']."', '".$donnees1['DateRet2BordRetrait']."')" )or die(mysql_error());
  21. //MARCHE PAS : met à jour les données de la table historisation(fdv) avec les donnees de la table edition pour l'identifiant =celui de la table fdv et edition  
  22. //supprime tout de tp_fdv1 pour l'identifiant sélectionné.
  23. $requete4= mysql_query ('DELETE * FROM tp_fdv1 WHERE Identifiant="'.$donnees0['Identifiant'].'"');
  24. //met à jour les données dans la table fdv1 pour l'identifiant d'intérêt
  25. $requete5= mysql_query ("INSERT INTO tp_fdv1 (CodeRemettant, LibRemettant, CodeCRDec, LibCRDec, CodeAction, Identifiant, NumeroDemarcheur, NomNaissance, NomUsuel, Prenom, Sexe, DEX, LibDEX, CS, Lib_CS, Ligne1_CS, Ligne2_CS, CP_CS, Localite_CS, Pays_CS, GP, LibGP, DPT, LibDPT, Entite, LibEntite, Ligne1, Ligne2, CodePostal, Localite, Pays_Adresse, NatureOperations, DenominationSociale, Ligne1_PM, Ligne2_PM, CodePostal_PM, Localite_PM, Pays_PM, DateExpiration, CodeFonction, LibFonction, NomRTB, PrenomRTB, Ligne1adrRTB, Ligne2adrRTB, Ligne3adrRTB, DateTraitement, DateEditCarte, NumeroLR, DateEnvoiLR, EnvoiEnAR, DateEnvoiAR, DateRetAR, NumeroColiss, DateEnvoiColiss) VALUES( '".$donnees0['CodeRemettant']."', '".$donnees0['LibRemettant']."', '".$donnees0['CodeCRDec']."', '".$donnees0['LibCRDec']."', '".$donnees0['CodeAction']."', '".$donnees0['Identifiant']."', '".$donnees0['NumeroDemarcheur']."', '".$donnees0['NomNaissance']."', '".$donnees0['NomUsuel']."', '".$donnees0['Prenom']."',  '".$donnees0['Sexe']."', '".$donnees0['DEX']."', '".$donnees0['LibDEX']."', '".$donnees0['CS']."', '".$donnees0['Lib_CS']."', '".$donnees0['Ligne1_CS']."', '".$donnees0['Ligne2_CS']."', '".$donnees1['CP_CS']."', '".$donnees0['Localite_CS']."', '".$donnees0['Pays_CS']."', '".$donnees0['GP']."', '".$donnees0['LibGP']."', '".$donnees0['DPT']."', '".$donnees0['LibDPT']."', '".$donnees0['Entite']."', '".$donnees0['LibEntite']."', '".$donnees0['Ligne1']."', '".$donnees0['Ligne2']."', '".$donnees0['CodePostal']."', '".$donnees0['Localite']."', '".$donnees0['Pays_Adresse']."', '".$donnees0['NatureOperations']."', '".$donnees0['DenominationSociale']."', '".$donnees0['Ligne1_PM']."', '".$donnees0['Ligne2_PM']."', '".$donnees0['CodePostal_PM']."', '".$donnees0['Localite_PM']."', '".$donnees0['Pays_PM']."', '".$donnees0['DateExpiration']."', '".$donnees0['CodeFonction']."', '".$donnees0['LibFonction']."', '".$donnees0['NomRTB']."', '".$donnees0['PrenomRTB']."', '".$donnees0['Ligne1adrRTB']."', '".$donnees0['Ligne2adrRTB']."', '".$donnees0['Ligne3adrRTB']."', '".$donnees0['DateTraitement']."', '".$donnees0['DateEditCarte']."', '".$donnees0['NumeroLR']."', '".$donnees0['DateEnvoiLR']."', '".$donnees0['EnvoiEnAR']."', '".$donnees0['DateEnvoiAR']."', '".$donnees0['DateRetAR']."', '".$donnees0['NumeroColiss']."', '".$donnees0['DateEnvoiColiss']."' ) " ) or die(mysql_error());
  26. }//while1
  27. }//if
  28. }//while2
  29. mysql_close();
  30. //penser à partir de la table fdv1 pour créer la tp edition et supprimer les champs inutiles...OK
  31. //traitement de la requete 4 : mettre à jour complètement les données (100 champs vides ou ceux qui restaient? à mon avis les vider.) donc : passer de update à delete et insert into tp_fdv1, plus rapide plutôt que spécifier les champs nuls.
  32. ?>


Message édité par flock86 le 14-02-2006 à 10:52:26
n°1304998
anapajari
s/travail/glanding on hfr/gs;
Posté le 14-02-2006 à 11:07:17  profilanswer
 

C'est vraiment améliorable ton truc :o
 
j'ai un peu la flemme de tout regarder mais a vue de nez je ferais un truc dans le genre:

Code :
  1. $requete0 = mysql_query ('SELECT * FROM tp_edition')or die(mysql_error());
  2. while ($donnees0 = mysql_fetch_array ($requete0)){
  3.  $requete3= mysql_query("INSERT INTO tp_historique ( ... tous tes champs dans le bon ordre + la date ) select *, current date from tp_edition where Identifiant=".$donnees0['Identifiant']);
  4. ...
  5. }


Et tu fais pareil pour ta deuxieme requête!

n°1305003
skeye
Posté le 14-02-2006 à 11:10:53  profilanswer
 

Mon dieu cette table.[:pingouino]
Si tu rentres tous les champs, pas besoin de tous les nommer, ce sera plus lisible.
bref, refais le compte, tu dois avoir spécifié plus de champs que tu ne donnes de valeurs, ou l'inverse.


---------------
Can't buy what I want because it's free -
n°1305015
flock86
oh non les gars pas le slip!
Posté le 14-02-2006 à 11:22:47  profilanswer
 

lol moi aussi je trouve que cette table est affreuse!!  
apparemment après 4 comptages j'ai 99 données pour 98 champs....
j'ai plus qu'à retrouver le  mauvais...
rhaaaaaa
un c'est pas drole d'être une bille, mais quand faut bosser sur ce genre de table...c'est un vrai cauchemar!!!
 
merci beaucoup de m'avoir filé une méthode plus propre. je connaissait pas "current".
bon ben j'ai plus qu'à recompter et vérifier les noms....
lol

n°1305038
omega2
Posté le 14-02-2006 à 11:50:43  profilanswer
 

Dit moi, t'es sur que l'organisation de tes tables est bien conçu?
Avec plusieurs adresses dans ta table, des infos d'historique de paiment, l'identité de la personne, des informations relatives à un publipostage .... ca me semble être un bon gros bordel tout ça.
 
Ca serait surement mieux et surtout plus simple si tu faisais :
une table envoie,  
une table adresse,  
une table paiement/remboursement
une table personne  
...

Message cité 1 fois
Message édité par omega2 le 14-02-2006 à 11:51:17
n°1305045
anapajari
s/travail/glanding on hfr/gs;
Posté le 14-02-2006 à 12:00:35  profilanswer
 

omega2 a écrit :

Dit moi, t'es sur que l'organisation de tes tables est bien conçu?
Avec plusieurs adresses dans ta table, des infos d'historique de paiment, l'identité de la personne, des informations relatives à un publipostage .... ca me semble être un bon gros bordel tout ça.
 
Ca serait surement mieux et surtout plus simple si tu faisais :
une table envoie,  
une table adresse,  
une table paiement/remboursement
une table personne  
...


 
Huum perso a vu de nez je dirais que c'est pour un système d'édition/génération de document et que le système doit être capable de ressortir l'état avec les données telles qu'elles étaient au moment de la dernière edition.
Alors il doit bien y avoir les 4 tables dont tu parles, mais ils stockent quand même un "photo" des données dans le gros bouzin au moment de l'édition.

n°1305075
flock86
oh non les gars pas le slip!
Posté le 14-02-2006 à 12:27:07  profilanswer
 

voili voilou anapajari t'as tout compris
 
perso pour l'organisation de cette table...j'y suis pas pour grand chose...
ça bouge tout le temps, y'a pas de cahier des charges...bref...c'est le m..dier.
vivement la fin de ce cauchemar!!


Message édité par flock86 le 14-02-2006 à 12:29:32
mood
Publicité
Posté le 14-02-2006 à 12:27:07  profilanswer
 

n°1305092
omega2
Posté le 14-02-2006 à 12:37:01  profilanswer
 

Premiére fois que je rencontre l'utilisation d'une table sql pour une telle raison.
C'est vrai que dans un tel cas, une telle "organisation" se comprend.
 
 
Pour répondre à la question, la requette d'anapajari est trés bien mais si les deux tables ont les champs dans le même ordre et que le nouveau champs est à la fin, alors il n'y a pas besoin de nomer les 99 colones de la table tp_fdv1 ce qui simplifie encore plus.

n°1305116
anapajari
s/travail/glanding on hfr/gs;
Posté le 14-02-2006 à 13:16:40  profilanswer
 

omega2 a écrit :

Premiére fois que je rencontre l'utilisation d'une table sql pour une telle raison.
C'est vrai que dans un tel cas, une telle "organisation" se comprend.


C'est que t'as jamais eu l'occasion de bosser sur un projet bien foireux ;)
J'ai vu ça sur un projet où la ged avait été oublié dès le debut. Donc pas d'archivage des documents générés. Et là le client qui sort: "Comment je fais pour re-générer mon edition de il y a 6 mois"...réponse:"Vous pouvez pas mais on va vous créer une ged, pour XXX K€" ... "Ah non s'trop cher!"  et l'idée de génie du cp/commercial/incompétent: "Et bin on va créé une table et on mettra tout dedans!!!"
 

omega2 a écrit :


Pour répondre à la question, la requette d'anapajari est trés bien mais si les deux tables ont les champs dans le même ordre et que le nouveau champs est à la fin, alors il n'y a pas besoin de nomer les 99 colones de la table tp_fdv1 ce qui simplifie encore plus.


tout a fait  :jap:


Message édité par anapajari le 14-02-2006 à 13:17:31
n°1305406
flock86
oh non les gars pas le slip!
Posté le 14-02-2006 à 16:31:55  profilanswer
 

MERCI pour vos conseils!!
je m'en suis tiré
tchao!!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  message d'erreur inconnu

 

Sujets relatifs
Erreur illegal start of expression[PHP] Activer tous les messages d'erreur ?
return string (erreur?)Probléme php erreur
[VBScript] [RESOLU] erreur lors de la suppression de fichierAfficher un message d'excuse quand le serveur est surchargé
Livre d'or avec valiation de messagemessage d'erreur : lien vers le serveur ne peut etre etabli... help!
Plus de sujets relatifs à : message d'erreur inconnu


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR