PHP requete UPDATE qui ne fonctionne pas!
Résolu
ASHTAR
-
ASHTAR -
ASHTAR -
Bonjour, alors voila mon probleme.
J'ai une requete qui ne fonctionne pas dans l'execution du script mais qui fonctionne tres bien manuellement dans mysql, c'est a rien y comprendre!!!
Ma requete :
Update pos_formulaire set x = 567 where x between 562 and 572; Update pos_formulaire set y = 244 where y between 239 and 249; Update pos_formulaire set x = 565 where x between 560 and 570; Update pos_formulaire set y = 275 where y between 270 and 280; Update pos_formulaire set x = 564 where x between 559 and 569; Update pos_formulaire set y = 305 where y between 300 and 310; Update pos_formulaire set x = 393 where x between 388 and 398; Update pos_formulaire set y = 243 where y between 238 and 248; Update pos_formulaire set x = 392 where x between 387 and 397; Update pos_formulaire set y = 274 where y between 269 and 279; Update pos_formulaire set x = 390 where x between 385 and 395; Update pos_formulaire set y = 339 where y between 334 and 344;
ce qui donne avec php :
x y
567 244
565 275
564 305
565 337
393 243
392 274
391 305
390 339
ce qui donne quand je l'execute dans la fenetre de mysql :
x y
564 243
564 274
564 305
564 339
390 243
390 274
390 305
390 339
c'est le resultat que j'attend avec PHP !!!
J'ai besoin que l'on m'eclaire un pe sur le sujet!
J'ai une requete qui ne fonctionne pas dans l'execution du script mais qui fonctionne tres bien manuellement dans mysql, c'est a rien y comprendre!!!
Ma requete :
Update pos_formulaire set x = 567 where x between 562 and 572; Update pos_formulaire set y = 244 where y between 239 and 249; Update pos_formulaire set x = 565 where x between 560 and 570; Update pos_formulaire set y = 275 where y between 270 and 280; Update pos_formulaire set x = 564 where x between 559 and 569; Update pos_formulaire set y = 305 where y between 300 and 310; Update pos_formulaire set x = 393 where x between 388 and 398; Update pos_formulaire set y = 243 where y between 238 and 248; Update pos_formulaire set x = 392 where x between 387 and 397; Update pos_formulaire set y = 274 where y between 269 and 279; Update pos_formulaire set x = 390 where x between 385 and 395; Update pos_formulaire set y = 339 where y between 334 and 344;
ce qui donne avec php :
x y
567 244
565 275
564 305
565 337
393 243
392 274
391 305
390 339
ce qui donne quand je l'execute dans la fenetre de mysql :
x y
564 243
564 274
564 305
564 339
390 243
390 274
390 305
390 339
c'est le resultat que j'attend avec PHP !!!
J'ai besoin que l'on m'eclaire un pe sur le sujet!
A voir également:
- PHP requete UPDATE qui ne fonctionne pas!
- Windows update ne fonctionne pas - Guide
- Winget update - Guide
- Asus live update - Télécharger - Utilitaires
- Easy php - Télécharger - Divers Web & Internet
- Wsus offline update - Télécharger - Systèmes d'exploitation
6 réponses
Tu ne peux pas exécuter plusieurs requêtes en même temps avec MySQL.
Au lieu de stocker ces dernières dans une chaîne ($query), mets-les dans un tableau $querys et à la fin tu te fais un
Au lieu de stocker ces dernières dans une chaîne ($query), mets-les dans un tableau $querys et à la fin tu te fais un
foreach($querys as $query) { mysql_query($query); }
Juste une question : est-ce que tu penses bien à réinitialiser le contenu de la table avec les valeurs initiales avant de faire un nouvel essai avec PHP ou ton client mysql ?
Enfete a la bases ya rien dans la table avant execution du script. Celui-ci insert "SA IL LE FAIT TRES BIEN" et ensuite traite les données "SA AUSSI IL LE FAIT TRES BIEN" la preuve est que la requete me donne le bon résultat. ^^
Mais allé savoir pourquoi mysql_query($marequete) refuse de s'executer correctement.
Mais allé savoir pourquoi mysql_query($marequete) refuse de s'executer correctement.
Bah il n'y a pas photo, si tu as un résultat différent c'est que avant ta série de mises à jour il n'y a pas les mêmes données initiales.
En exécutant manuellement les requêtes par le client tu dois zapper une série d'update ou d'insert.
Si tu ne vois vraiment pas, commente cette série de MàJ dans PHP et exécute dans le client en l'omettant également. Tu devrais obtenir des informations différentes.
En exécutant manuellement les requêtes par le client tu dois zapper une série d'update ou d'insert.
Si tu ne vois vraiment pas, commente cette série de MàJ dans PHP et exécute dans le client en l'omettant également. Tu devrais obtenir des informations différentes.
Mon code :
comme tu pe le voir "bon ok c'est pas très beau" mais ma mise a jour ce fait a la fin. ce n'est pas une série de requete "enfin si" mais executer en une seul fois.
$moyenne=mysql_query('SELECT x, y from pos_formulaire'); $min=mysql_result($moyenne, 0, 0)-5; $max=mysql_result($moyenne, 0, 0)+5; $query='Update pos_formulaire set x = '.mysql_result($moyenne, 0, 0).' where x between '.$min.' and '.$max.'; '; $min=mysql_result($moyenne, 0, 1)-5; $max=mysql_result($moyenne, 0, 1)+5; $query=$query.'Update pos_formulaire set y = '.mysql_result($moyenne, 0, 1).' where y between '.$min.' and '.$max.'; '; $moyenne2=mysql_query('SELECT x, y from pos_formulaire where x <> '.mysql_result($moyenne, 0, 0).' and y <> '.mysql_result($moyenne, 0, 1).''); $save='x <> '.mysql_result($moyenne, 0, 0).' and y <> '.mysql_result($moyenne, 0, 1).''; $save2=""; while(mysql_numrows($moyenne2)!=0) { $min=mysql_result($moyenne2, 0, 0)-5; $max=mysql_result($moyenne2, 0, 0)+5; $query=$query.'Update pos_formulaire set x = '.mysql_result($moyenne2, 0, 0).' where x between '.$min.' and '.$max.'; '; $min=mysql_result($moyenne2, 0, 1)-5; $max=mysql_result($moyenne2, 0, 1)+5; $query=$query.'Update pos_formulaire set y = '.mysql_result($moyenne2, 0, 1).' where y between '.$min.' and '.$max.'; '; $x=mysql_result($moyenne2, 0, 0); $y=mysql_result($moyenne2, 0, 1); $moyenne2=mysql_query('SELECT x, y from pos_formulaire where x <> '.$x.' and y <> '.$y.' and '.$save.' '.$save2.''); $save2=$save2.' and x <> '.$x.' and y <> '.$y.''; } mysql_query($query); echo $query;
comme tu pe le voir "bon ok c'est pas très beau" mais ma mise a jour ce fait a la fin. ce n'est pas une série de requete "enfin si" mais executer en une seul fois.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Dans tous les cas je te remercie Yoan d'user un pe de ton temp!
Je doit m'absenter et reviendrai demain pour voir les reponses.
Merci encore!
Je doit m'absenter et reviendrai demain pour voir les reponses.
Merci encore!