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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Drole de pb avec un mysql_query

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Drole de pb avec un mysql_query

n°1451978
energiez
Posté le 04-10-2006 à 11:07:51  profilanswer
 

Bonjour à tous,
 
Dans un de mes projets, j'ai tout un systéme qui contruit des tables dynamiquement, et qui me les remplis.
J'en arrive a avoir des requetes assez consequente, du genre :  
 

Code :
  1. INSERT INTO t_test2
  2. (`Nom et adresse officiels`,`Référence de la`,`Référence d'`,`Objet du marché :`,`Type de marché de tr`,
  3. `Critères d'attri`,`Type de procédure :`,`Valeur totale estimé`,`Attribution des march`,`Offres la plus basse/`,
  4. `Sous-traitance :`,`Part de la sous-traitance`,`Date d'attribution du`,`Nombre total d'offres`,
  5. `Autres informations :`,`Date d'envoi du pr`)
  6. VALUES
  7. (' ville de Toulouse. Personne responsable du marché : Mme Marie-Ange xxxxxxxxxx',' B.O.A.M.P. :
  8. xxxxxxxxxxxxx. ',
  9. ' 05d219. ',' ',' exécution. ',
  10. ' Offre économiquement la plus avantageuse appréciée en fonction des critères énoncés ci-dessous :
  11. - notice technique ; - prix ; - engagement sur les délais prescrits à l'acte d'engagement. ',
  12. ' appel d'offres ouvert. ',' 3959607,71 EUR (H.T. hors options) ; montant total des options : 306 870,00 EUR (H.T.). ',
  13. ' Lot(s) 1. - hall d'accueil, Café du Muséum, droguier, médiathèque : cgem,,
  14. à l'attention de Mme xxxxxxxxxxxxxxxx',
  15. ' 41 744 EUR/74 756 EUR. ',' non. ',' 145 150 EUR Lot(s) 8. - soclage : infructueux. Lot(s) 9. - electricité : snef,
  16. , à l'attention de M. xxxxxxxxxxxxxxxxxxxxxxxxxxx',
  17. ' 16 août 2006. ',' 19. ',' 2 offres pour le lot 1. 1 offre pour le lot 2. 2 offres pour le lot 3 1 offre pour le lot 4. 1
  18. offre pour le lot 5 2 offres pour le lotr 6. 1 offre pour le lot 7. Aucune offre pour le lot 8. 2 offres pour le lot 9.
  19. 3 offres pour le lot 10. 2 offres pour le lot 11. 2 offres pour le lot 12. ',' 5 septembre 2006.   ')


 
 
Cette requete fonctionne parfaitement lorsque je la copie colle dans phpmyadmin.
 
Elle fonctionne également lorsque je fait un mysql_query("toute la requete" );
 
Mais lorsque je stock cette requete dans une variable, puis que "j'execute" cette variable, cela ne fonctionne pas !!!
 
Voici mon code :
 
   

Code :
  1. $values="";
  2.     $sql="INSERT INTO t_test2(";
  3.     foreach ($final as $key=>$value)
  4.     {
  5.      if($r==0)
  6.      {
  7.       $sql.= "`".$key."`";
  8.       $values.="'".$value."'";
  9.       $r++;
  10.      }
  11.      else
  12.      {
  13.       $sql.=",`".$key."`";
  14.       $values.=",'".htmlentities($value)."'";
  15.      }
  16.     }
  17.  
  18.  
  19.     $sql=$sql.') VALUES('.$values.')';
  20.  
  21.     echo $sql."<br />";
  22.    
  23.     /*
  24.     LA REQUETE FONCTIONNE DS PHPMYADMIN, MAIS PAS AVEC mysql_query()....
  25.     MYSTERE MYSTERE !
  26.     */
  27.    
  28.    
  29.     mysql_query($sql) or die(mysql_error());


 
qui me sort l'erreur suivante :
Champ 'Référence de la' inconnu dans field list
 
alors que ce champ existe bien, et que, rapellon le, la requete contenu dans $sql fonctionne parfaitement sous phpmyadmin.....
 
 
Merci d'avance pour votre aide :)


Message édité par Harkonnen le 07-10-2006 à 11:14:44
mood
Publicité
Posté le 04-10-2006 à 11:07:51  profilanswer
 

n°1452014
flo850
moi je
Posté le 04-10-2006 à 11:36:09  profilanswer
 

c'est moche les espaces dans les noms de champs :/

n°1452018
energiez
Posté le 04-10-2006 à 11:38:42  profilanswer
 

Je sais, mais c généré dynamiquement...
 
La requête est moche, mais j'y peut pas grand chose :/
 
Ce qui m'embete, c'est cette histoire de variable $sql qui veut pas marcher avec mysql_query.

n°1452043
anapajari
s/travail/glanding on hfr/gs;
Posté le 04-10-2006 à 12:07:26  profilanswer
 

je vote problème de caractères genre ` ou '  
Si cela s'affiche correctement en html, c'est pas pour autant que la chaine est effectivement correcte.
tu devrais faire un coup de mysql_real_escape_string pour t'assurer que ta requete est correcte.
 
Par ailleurs je plussoie allègrement flo850 sur le coté immonde de la structure de ta table

n°1452047
energiez
Posté le 04-10-2006 à 12:14:42  profilanswer
 

Ma requte fonctionne trés bien, puisque copié ds phpmyadmin, elle fonctionne.
 
 
de meme si je la colle directement ds mysql_query, ca fonctionne.
 
C'est quand je passe via une varibale, genre $sql="marequete" que ca ne fonctionne plus :(
 
J'ai deja tester mille fois avec des  
mysql_real_escape_string
mysql_escape_string
addslahes
htmlentities, eect...

n°1452231
energiez
Posté le 04-10-2006 à 15:46:46  profilanswer
 

Personne n'a une idée ???

n°1453139
leflos5
On est ou on est pas :)
Posté le 05-10-2006 à 23:21:35  profilanswer
 

Si, moi :) Tu utiliserais des vrais noms de champs corrects et propres t'aurais pas de souci de ce genre ;)

n°1453145
energiez
Posté le 05-10-2006 à 23:41:51  profilanswer
 

comme je l'ai deja dit, c dynmique, et ca change tt le temps, je peux pas changer les nom des champs :(

n°1453149
leflos5
On est ou on est pas :)
Posté le 05-10-2006 à 23:53:45  profilanswer
 

energiez a écrit :

comme je l'ai deja dit, c dynmique, et ca change tt le temps, je peux pas changer les nom des champs :(


SI tu peux ;) Tu peux très bien remplacer les espaces par des _ et suprimer les accents [:itm]

n°1453213
energiez
Posté le 06-10-2006 à 09:55:49  profilanswer
 

en effet, ca c possible :p

mood
Publicité
Posté le 06-10-2006 à 09:55:49  profilanswer
 

n°1453305
leflos5
On est ou on est pas :)
Posté le 06-10-2006 à 11:54:59  profilanswer
 

energiez a écrit :

en effet, ca c possible :p


Tu vois, tout problème trouve solution propre :whistle:

n°1453319
energiez
Posté le 06-10-2006 à 12:20:40  profilanswer
 

Mais bon, j'ai fait autrement.
 
J'ai tout stocké dans un fichier sql.
Ensuite je l'execute :p

n°1453321
flo850
moi je
Posté le 06-10-2006 à 12:22:50  profilanswer
 

tu gère le cas de deux execution simultanées ?

n°1453338
energiez
Posté le 06-10-2006 à 13:12:29  profilanswer
 

2 executions simultanées de quoi?

n°1453441
flo850
moi je
Posté le 06-10-2006 à 15:19:32  profilanswer
 

deux personnes différentes qui vont ajouter un marché  
 
deux personnes différentes qui vont lancer ton script  

n°1453452
energiez
Posté le 06-10-2006 à 15:53:54  profilanswer
 

Y'a rien de tout ca ds ce projet ;)
 
C'est une sorte de backup qui est lancé une fois de temps a autre :)

n°1453681
leflos5
On est ou on est pas :)
Posté le 07-10-2006 à 01:14:37  profilanswer
 

A l'origine ton souci était simplement un problème de caractères non échappés ;)
Mais je maintiens que t'arriveras à rien de bon avec des attributs comme ça...
 
La preuve t'as eu un souci tout bête avec php, si t'as besoin un jour d'utiliser tes données pries le ciel que tout se vautre pas lamentablement :d

n°1453722
Taz
bisounours-codeur
Posté le 07-10-2006 à 11:00:37  profilanswer
 

elle does Marie-Ange ?

Message cité 1 fois
Message édité par Taz le 07-10-2006 à 11:00:50
n°1453730
energiez
Posté le 07-10-2006 à 11:11:21  profilanswer
 

leflos5 a écrit :

A l'origine ton souci était simplement un problème de caractères non échappés ;)
Mais je maintiens que t'arriveras à rien de bon avec des attributs comme ça...
 
La preuve t'as eu un souci tout bête avec php, si t'as besoin un jour d'utiliser tes données pries le ciel que tout se vautre pas lamentablement :d


 
non, ce n'est pas un pb de carctéres échappé, car lorsque je copie ma requete direct ds php(ds le mysql_query), ca fonctionne trés bien. C qd je passe via une vriable que ca maerde...
 

Taz a écrit :

elle does Marie-Ange ?


 
T qui toi?
 
EDIT : ok, j'ai compris :p
Je venais de parler avec une Mari-Ange, c pr ca que je comprenais pas :p :lol:

Message cité 1 fois
Message édité par energiez le 07-10-2006 à 11:19:28
n°1453732
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 07-10-2006 à 11:12:01  profilanswer
 

energiez>> tant que t'y est, tu devrais mettre le tour de poitrine et la date de naissance de marie ange aussi :pfff:
j'ai édité ton post de départ pour virer ses coordonnées et n° de tél :sarcastic:

n°1453734
energiez
Posté le 07-10-2006 à 11:17:29  profilanswer
 

A ok, j'avasi pas compris ^^
 
Mais de tte maniére, y'a pas de pb, c des données publiques, accesibles à tous !

n°1453847
leflos5
On est ou on est pas :)
Posté le 07-10-2006 à 17:37:35  profilanswer
 

energiez a écrit :

non, ce n'est pas un pb de carctéres échappé, car lorsque je copie ma requete direct ds php(ds le mysql_query), ca fonctionne trés bien. C qd je passe via une vriable que ca maerde...


 
Parce que t'as des caractères qui font merdouiller le truc qui trainent. Même surement au niveau des /n /r non affichés...
 
Enfin ça veut bien dire que y'a un souci quelque part, mysql_query est moins regardant que le parseur...

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Drole de pb avec un mysql_query

 

Sujets relatifs
Rrreur Requete Mysql Par PHPparcourir, Stocker image ds bd mysql et l'afficher !!
[PHP/Mysql] Problème avec 2 connexions simultanées[MySQL]UTF8 vs ISO-..
comment retirer sa base de donnée mysql[mysql] pourquoi excel n'arrive pas a se connecter a mysql?
Pb MysqlBesoin d'un fort en jointure externe MySQL
Plus de sujets relatifs à : Drole de pb avec un mysql_query


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)