Votre question

Résolu : Diminuer les requetes. PHP (simple)

Tags :
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
22 Août 2006 21:59:39

Bonsoir je fais un petit systeme de lotterie pour un futur projet, et mon probleme est la sécurité euh je disait mon probleme est le nombre de requets, car si ce site atteind beaucoup de membres le probleme c'est les requetes inutiles. et je voulais savoir si vous pourriez m'aider pour ce while (aprés je prendrais exsemple sur ça et je nétoirais tout mon code :
  1. $sql1 = mysql_query("SELECT id_joueur,time FROM dominos");
  2. $requetes=$requetes+1;
  3. while($aff1 = mysql_fetch_array($sql1)){
  4. $sql2 = mysql_query("SELECT pseudo FROM membres WHERE id='".$aff1['id_joueur']."'");
  5. $aff2 = mysql_fetch_assoc($sql2);
  6. $requetes=$requetes+1;
  7. echo date("d/m/Y H:i:s",time($sql1['time']))." -> ".$aff2['pseudo']."<br />";
  8. }


j'a essayer de tout simplifier le plus possible pour pas que ça prenne 20 pages sur le forum (je vous assure mon code n'est pas eyxactement a vec ces variables et plus complexe) mais le probleme c'est comment faire exectuer le meme code sans que la requete ne ce repete dans le while car c'est çA qui utilise autaant de requetes sur ma page.

Autres pages sur : resolu diminuer requetes php simple

22 Août 2006 22:06:35

si tu a un php 4.3 ou supérieur (je crois) tu peut faire les sous requete directement dans la meme. ou regarde du coté du cache serveur de mysql5, quel est l'hébergeur?


Les sous requete je ne sais pas si c'est interpreter par "une" requete niveau mysql ou 2 quand meme.

genre : select blabla from machin where (select truc from bidule where...) vu que je n'ai jamais utilisé cette méthode.

Sinon il reste les jointure, suivant ce que tu veux faire.
22 Août 2006 22:31:47

je suis chez 1and1 ( :-( ) il y a php 5 mais je vais changer vers un hebergeur suisse une fois le projet fini ça m'aidera en cas de probleme pour le déplacement, bref il me semble que tu m'avais dis une fois pour les requete imbriquée a partir de php 4.x

mais pour compter les requetes je fais la variables plus 1 et je l'affoiche en footer, tu connais une function php qui le fait (genre date() pour la date ...)

et pour les jointure çA ressemble a quoi?
Contenus similaires
a c 145 L Programmation
22 Août 2006 22:33:24

les sous-requètes dépendent de la version de mysql (mysql 5 je crois).
Mais la jointure doit être possible, je vais essayer de tête (pas rigoler):
  1. SELECT j.pseudo, d.time FROM dominos d LEFT JOIN membres j ON j.id=d.id_joueur GROUP BY d.id_joueur

Je ne promet pas que ça fonctionne, mais c'est ce qui me semble le plus juste à cette heure ci
22 Août 2006 23:08:40

tu pourrais détailler ta requete car je comprend pas les j. d. LEFT ??
22 Août 2006 23:18:13

Alias, comme la derniere fois.

dominos d signifie qu'il appel "d" la table pour nomé les champ, exemple :

j.pseudo est sur la table membre, et d.id_joueur est sur dominos.

Pour compter le nombre de requete, on s'en fiche de ta variable, je te parle de requete imbriqué, si tu fais :

SELECT truc FROM machin WHERE (SELECT bidule FROM gnagna WHERE ....)

Je ne sais pas si dans ce cas, Mysql considere qu'il y'a 2 requete ou non !
22 Août 2006 23:19:14

Et je te conseil de rester chez 1and1, je suis chez eux également, meme si tu es suisse, c'est un hébergeur des plus performant du marché, et leur hotline est joignable de suisse non?

Je leur ai déja telephoné 2 fois en 6 mois pour une question sur mysql, ils sont tres compétent, ce n'est pas comme les FAI !

Va voir également les cours sur developpez.com PHP, dans les cours tu as des exemple et tutorial sur les jointure.
22 Août 2006 23:29:10

j'ai compris les jointures merci à vous.

ma question sur compter les requetes c'été "à part"

1and1 me saoul car ils coupent mon site le soir pendant quelques minutes...

  1. $sql_gagnants_list = mysql_query("SELECT * FROM jeux_participants,membres WHERE membres.id=jeux_participants.id_joueurs AND jeux_participants.id_jeux='".$_GET['id']."' AND jeux_participants.gain='1' ");
  2. $requetes=$requetes+1;
  3. while($gagnants_list = mysql_fetch_array($sql_gagnants_list)){
  4. echo "<tr>
  5. <td>".$gagnants_list['jeux_participants.id_partie']."</td>
  6. <td>".$gagnants_list['membres.pseudo']."<td>
  7. </tr>";
  8. }


là à l'écran ça affiche pas les resultats je comprend pas la faute ... vous voyez vous?
22 Août 2006 23:38:27

non rien j'ai trouvé lol enfaite j'ai été dans la table des matieres des 4 livres php que j'ai et j'ai trouvé l'erreur :p 
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS