JeuWeb - Crée ton jeu par navigateur
Plusieures requêtes en une - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Plusieures requêtes en une (/showthread.php?tid=1284)

Pages : 1 2


Plusieures requêtes en une - nemesis_elite - 13-06-2007

Bonjour bonjour,

Je me pose une question d'ordre pratique :
j'aimerai savoir si il était possible de faire plusieurs requête en une seule.
En gros, simplifier cette forme "php" :
Code PHP :
<?php 
$Requete
= mysql_query('SELECT valeurVariable, valeurFixe FROM table WHERE id=1');
$aRes = mysql_fetch_array($Requete);

if(
$aRes['valeurVariable']+1 == $aRes['valeurFixe']){
mysql_query('UPDATE table SET valeurVariable=0 WHERE id=1');
....
}else{
mysql_query('UPDATE table SET valeurVariable=valeurVariable+1
WHERE id=1'
);
....
}

Sous cette forme "mysql" :
Code PHP :
<?php 
mysql_query
('IF valeurVariable=valeurFixe
THEN (UPDATE table SET valeurVariable=0 WHERE id=1)
ELSE UPDATE table SET valeurVariable=valeurVariable+1 WHERE id=1
END IF'
);
Car j'ai trouvé cette commande, mais je n'arrive pas à la mettre en pratique.

Merci d'avance Smile


RE: Plusieures requêtes en une - Nessper - 13-06-2007

Franchement j'en sais rien^^. mais quel est l'intérêt ? ça va plus vite ?


RE: Plusieures requêtes en une - nemesis_elite - 13-06-2007

Et bien je pense oui, mysql est parfois plus rapide que php.
Alors pourquoi pas.

Faut bien faire travailler mysql, Smile.
Il fou presque rien !!!! Big Grin


RE: Plusieures requêtes en une - Nessper - 13-06-2007

Mais ce qui est bizarre en fait c'est le IF je trouve parce que tu ne lui indique pas que c'est où l'id =1.


RE: Plusieures requêtes en une - nemesis_elite - 13-06-2007

Je viens d'essayer ceci :
Code PHP :
<?php 
mysql_query
('IF valeurVariable=valeurFixe FROM table WHERE id=1
THEN (UPDATE table SET valeurVariable=0 WHERE id=1)
ELSE UPDATE table SET valeurVariable=valeurVariable+1 WHERE id=1
END IF'
);

Mais ça ne donne toujours rien !


RE: Plusieures requêtes en une - Loetheri - 13-06-2007

Alors oui, c'est possible. Maintenant, il existe un bon tutorial sur SQL chez SdZ : Pour aller plus loin...

Lorsque vous faites des requêtes SQL (et surtout MySQL), il vaut mieux éviter de nombreuses requêtes. Cela est d'autant plus vrai pour les demandes d'informations (QUERY). Une grosse requête sera plus profitable que 5 petites.


RE: Plusieures requêtes en une - nemesis_elite - 13-06-2007

Je vais lire le tutoriel et je vous tiens au courant Smile


RE: Plusieures requêtes en une - NicoMSEvent - 13-06-2007

Il faut voir si la version du mySQL que tu utilises (ou bien si MySQL en général) accepte le PL/SQL.
Qu'est ce que le PL/SQL? c'est du SQL + langage procédural, donc la possibilité de mettre des IF dedans. C'est beaucoup utilisé avec les bases de données Oracle (je peux certainement t'aider la dessus vu que c'est mon taf pour le moment).
Si vraiment tu veux utiliser Oracle, tu peux aller voir leur site, c'est téléchargeable gratuitement, a la condition que ça reste pour une utilisation privée. Le jour ou tu mettras ton site en production, il faudra payer une licence.


RE: Plusieures requêtes en une - Loetheri - 13-06-2007

Tu dois avoir quelque chose du genre :
Code PHP :
<?php 
$sql
= "UPDATE table SET valeurVariable =
CASE
WHEN valeurVariable=valeurFixe THEN 0
ELSE valeurVariable +1
END
WHERE id = 1

Tu peux dans le WHEN mettre aussi une autre requête MySQL. Mais cela te donne une idée.


RE: Plusieures requêtes en une - nemesis_elite - 13-06-2007

Je vais essayer tout de suite, mais ça me parait bien Smile

Merci Smile

[EDIT]
Bon ça fonctionne très bien, je te remercie Smile
Maintenant, j'ai juste une autre question, il y a un moyen, pour savoir si ça met à 0 ou à valeurVariable+1 ?
Il faut faire une autre requête? ou bien ...

Merci d'avance Smile