[MySQL] Optimisation de la requête

Eléphant du PHP | 99 Messages

01 mai 2007, 19:21

Bonjour!
Je suis en train de créer un système de MP, mais j'ai un chtit problème:
En fait, je récupère l'ID des destinataires et créateurs, puis je refait une requête pour récupérer leur nom...
Assez long.
Est-ce que vous ne connaitriez pas une manière d'améliorer ça?
Mon code actuel ressemble à ça:

Code : Tout sélectionner

$requete = mysql_query("SELECT `name`,`content`,`from`,`for` FROM `privates_messages` WHERE (`id`='".$security->SQL_var($_GET['msg'])."') AND (`from`='".USER_ID."' OR `for`='".USER_ID."')"); if(mysql_num_row($requete) == 1) { $mail_lu = mysql_query("UPDATE `privates_messages` SET `readden`='1' WHERE `id`='".$security->SQL_var($_GET['msg'])."'"); $requete = mysql_fetch_assoc($requete); $from = mysql_query("SELECT `username` FROM `users` WHERE `id`='".$requete['from']."'"); $from = mysql_fetch_row($from['query']); $for = mysql_query("SELECT `username` FROM `users` WHERE `id`='".$requete['for']."'"); $for = mysql_fetch_row($for['query']);
J'ai cherché dans plusieurs tutos (notamment ceux des Zér0s), mais je n'ai pas trouvé ce que je cherchais...


Merci d'avance!


[edit] J'ai trouvé comment faire, mais j'aimerais pouvoir demander à MySQL d'envoyer deux requêtes en même temps: une de type SELECT et une autre de type UPDATE. Il y a un moyen?

Mammouth du PHP | 19672 Messages

02 mai 2007, 08:52

[edit] J'ai trouvé comment faire, mais j'aimerais pouvoir demander à MySQL d'envoyer deux requêtes en même temps: une de type SELECT et une autre de type UPDATE. Il y a un moyen?
À part avec un trigger ou encore en mettant tes deux requêtes dans une procédure stockée, je ne vois pas.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 99 Messages

02 mai 2007, 12:44

Oki.
Tant pis, merci quand même :)

ViPHP
ViPHP | 5924 Messages

02 mai 2007, 13:24

[edit] J'ai trouvé comment faire, mais j'aimerais pouvoir demander à MySQL d'envoyer deux requêtes en même temps: une de type SELECT et une autre de type UPDATE. Il y a un moyen?
À part avec un trigger ou encore en mettant tes deux requêtes dans une procédure stockée, je ne vois pas.
C'est pas possible de faire une transaction pour faire les 2 en même temps ?