La Communauté Webmaster  forum rss


  Forum-webmaster
  Technique - programmation
  PHP / MySQL
(Modérateurs: Shain, Jey, erwinol, Lilian, lauryv, ToToMaStEr)
  Requetes "trop rapides"
« Précédent Suivant »
Pages: [1] Descendre
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
  Auteur  Sujet: Requetes "trop rapides"  (Lu 790 fois)
Requetes "trop rapides"
« sur: le 04-09-2003 a 21:19:52 »
Guile
Membre récent
*

Hors-Ligne

Messages: 2



Je suis un lama!

Voir le Profil
Répondre avec citation

Salut,

J'ai un problème qui me tracasse énormément, et j'espère que quelqu'un pourra m'orienter pour le résoudre.
J'ai un script PHP 4.qui exécute 3 requêtes sur MySQL 4.0.14, suivez bien :
//Mise à 1 d'un flag sur 50 enregistrements répondant à un critère A
mysql_query($strRequete_1);
//Modification des lignes dont le flag est à 1
mysql_query($strRequete_2);
//Mise à 0 du flag pour les enregistrements flagés à 1
mysql_query($strRequete_3);

Après chaque lancement de requete, j'affiche le nombre d'enregistrements modifiés.
J'obtiens pour la 1ere requete :  5 (soit, sur les 50, il y en a 5 qui répondent au critère A)
Pour la 2eme : 0 ! (étonnant, car normalement c'est bon pour les 5)
Pour la 3eme: 5 (ah bin ca va!! je reviens comme avant! :-) )

Je comprends pas du tout pourquoi j'ai 0. Mais attendez, y a un autre résultat qui m'étonne.
Après l'exécution de la 1ere, je mets un joli sleep(1); (ca endort le script pdt une seconde!)
Et bien, là, Ô surprise! J'obtient 5 partout (youpiiiiiii!)

Alors ma théorie, c'est qu'il y a une persistance des données dans MySQL, qui empeche la 2eme requete d'etre réalisée sur les bons enregistrements.

Vous comprendrez bien sur que je ne désire pas garder ce satané sleep(1);

Qqn peut il m'aider, au secouuuuuuurs!

Guile

« Dernière Édition: le 04-09-2003 a 21:22:07 par Guile » Rapporter au modérateur  

Re:Requetes "trop rapides"
« Répondre #1 sur: le 04-09-2003 a 21:47:04 »
Zorf
Membre récent
*

Hors-Ligne

Sexe: Male
Messages: 18





Voir le Profil    WWW
Répondre avec citation

Euh... je comprend pas l'intérêt en fait...

Tu fais:
Code:
//Mise à 1 d'un flag sur 50 enregistrements répondant à un critère A
mysql_query($strRequete_1);
//Modification des lignes dont le flag est à 1
mysql_query($strRequete_2);
//Mise à 0 du flag pour les enregistrements flagés à 1
mysql_query($strRequete_3);


Et pourquoi pas:
Code:
//Modification des lignes répondant à un critère A
mysql_query($strRequete_1);

Rapporter au modérateur  
Re:Requetes "trop rapides"
« Répondre #2 sur: le 04-09-2003 a 21:54:53 »
Guile
Membre récent
*

Hors-Ligne

Messages: 2



Je suis un lama!

Voir le Profil
Répondre avec citation

Moui, j'avais oublié de préciser pour ceux qui se pose cette question...
La 2eme requete est un update sur plusieurs table (ouai, bourrin, et alors  ).
Donc on peut pas utiliser LIMIT 50 (car sinon update sur des milliers de lignes, et tps exponentiel)
Alors j'ai décidé d'encapsuler le tout dans un "flager / unflager" avec un flager limité à 50 enregistrements...

Voila, est ce une réponse suffisante?

Je continue mon problème qui est résolu, mais ... étrangement
dans la requete 2 je mets le flag à 2, et la requete trois a comme critère flag=2 et non plus 1.
Vous y croirez peut etre difficilement, mais ca marche... Alors maintenant je voudrais savoir pk ca marche comme ca!!

MySQL est vraiment enigmatique!

Guile

Rapporter au modérateur  
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
Pages: [1] Monter
« Précédent Suivant »
Sauter à: 

Votre statut : Invité
Vous devez être membre pour participer.
 
 
Let’s Encrypt : le certificat SSL gratuit
Tester votre site internet sur différents navigateurs
[WordPress] Des problèmes avec l’administration ?
Rappel : Mettez à jour vos CMS et vos sites E-commerce
Le .fr fête ses 25 années d’existence !
Mesurer votre audience en temps réel avec BubbleStat
Porter réclamation contre Google Panda ?
Zlio n’est plus …
 
 
 
 
 

Copyright (c) Devclic 2002 - 2026 - Tous droits réservés

creation site internet strasbourg