[Reglé]SQL, conditions et test - 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 : [Reglé]SQL, conditions et test (/showthread.php?tid=1701) |
[Reglé]SQL, conditions et test - Byleth - 03-09-2007 Bonjour les gens, j'ai un problème tout bête et j'aimerai votre avis : Lorsqu'un joueur consomme un objet, je dois vérifier qu'il le possède bien car entre le moment où la page de sélection s'affiche et le moment de la consommation effective, il peut se passer toute sorte de problème (triche plus ou moins poussée, erreur humaine en ouvrant plusieurs pages, etc...) Je souhaite donc vérifier, lors de la suppression de l'objet (on soustrait de 1 le nombre dans la BdD), qu'il est toujours en possession du joueur, avant d'en déclencher les effets. Ce n'est en soit pas compliqué en php, mais je me demande si je peux le faire dans une simple requête SQL histoire d'économiser 1 requête (ce qui est toujours plaisant lol) En gros je veux ça : Si Nombre>0, Nombre=Nombre-1 Sinon, la requête rend faux Merci de votre aide. RE: SQL, conditions et test - corentone - 03-09-2007 Il faut utiliser un CASE...regarde un poil plus bas j'avais fait une demande du meme type...je vais voir si je te trouve le lien PS: je ne reponds pas totalement car j'ai peur de te dire nimporte quoi EDIT: le voila! http://www.jeuweb.org/board/showthread.php?tid=2301 RE: SQL, conditions et test - Byleth - 03-09-2007 Je connais le CASE, merci pour le lien Mon soucis est plutôt de savoir comment PHP peut savoir que la requête n'est pas exécutable afin de sortir un petit message d'erreur. RE: SQL, conditions et test - corentone - 03-09-2007 A mon avis si tu veux traiter cela avec Php, il suffira d'un IF avant la requete... Ou bien il faut se tourner du cote de mysql_affected_rows (ou un truc du genre) qui renvoie le nombre de lignes editées...si c'est zero, c'est que cela n'a pas eut lieu... RE: SQL, conditions et test - jo_link_noir - 04-09-2007 $req = requete sql; if($req == NULL) { echo "aucune information trouvé"; exit; } si j'ai bien comprit c'est un truc comme ça ? RE: SQL, conditions et test - Byleth - 04-09-2007 Tu veux dire que si je mets mon CASE et qu'aucune condition n'est remplie, la requête SQL rend NULL? RE: SQL, conditions et test - jo_link_noir - 04-09-2007 j'ai oublier une ligne >.< $req = requete sql; $sql = mysql_fetch_array($req); if($sql == NULL) { echo "aucune information trouvé"; exit; } et là, quand la requete ne prend rien dans la bdd (aucune condition des cases) ça donne null RE: SQL, conditions et test - Roworll - 04-09-2007 J'utiliserai une autre méthode. Déjà, la requête SQL Code PHP :
Ensuite, comme l'a suggéré Corentone, tu utilises mysql_affected_rows qui te renvoie le nombre de lignes affectées par la mise à jour. Code PHP :
Inutile donc de récupérer le recordset renvoyé par la requête. RE: SQL, conditions et test - Byleth - 05-09-2007 Merci beaucoup, ça marche parfaitement |