JeuWeb - Crée ton jeu par navigateur

Version complète : Plusieures requêtes en une
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Pages : 1 2
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
Franchement j'en sais rien^^. mais quel est l'intérêt ? ça va plus vite ?
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
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.
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 !
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.
Je vais lire le tutoriel et je vous tiens au courant Smile
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.
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.
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
Pages : 1 2