serik Posted July 2, 2007 Share Posted July 2, 2007 Voilà le problème, j'ai une table avec 4 champs : Nick0 à Nick3. Le but de la requête serait de mettre Nick# à "LIBRE" là où Nick# est égal à "blablabla". Je ne connais pas à l'avance le #. Est-il possible de fair ça en une seule requête? Merki! Link to comment Share on other sites More sharing options...
LukeSkyPator Posted July 2, 2007 Share Posted July 2, 2007 Voilà le problème, j'ai une table avec 4 champs : Nick0 à Nick3.Le but de la requête serait de mettre Nick# à "LIBRE" là où Nick# est égal à "blablabla". Je ne connais pas à l'avance le #. Est-il possible de fair ça en une seule requête? Merki! Selon ton langage, tu crées un fichier dans lequel tu définis en tant que constante tes fonctions sql. Il ne te reste qu'à passer en paramètre de string les trucs que tu connais pas : Exemple en php : je crée un fichier requete.sql.php avec : define (MA_REQUETE, "Update table set %s=%s WHERE %s=%s"); Dans mon code, je génère ma requête via sprintf(MA_REQUETE, $String1, $String2, $String3, $String4). Chaque $Stringi viendra prendre la place d'un %s dans l'ordre d'apparition de ceux-ci. LSP, le manchot qui rentre à la maison Link to comment Share on other sites More sharing options...
serik Posted July 2, 2007 Author Share Posted July 2, 2007 Ce qui fait 4 éxécutions de requêtes... (une par nick). En fait je cherche une requête qui ferait "UPDATE table SET Nick0='LIBRE' WHERE Nick0='$LeNick' AND SET Nick1='LIBRE' WHERE Nick1='$LeNick' AND SET [....] LIMIT 1 J'insiste sur le "en une seule requête" car c'est une requête qui pourrait prendre un certain temps et scanner une seule fois la table et un plus non négligeable. Pour l'instant à part enregistrer où le joueur était pour la dernière fois (ce qui m'implique pas mal de modif) je n'ai pas trouvé. Link to comment Share on other sites More sharing options...
serik Posted July 2, 2007 Author Share Posted July 2, 2007 UPDATE : En fait j'ai réussi pas avec une mais en deux requêtes. $sql = "SELECT `PartyId`, `Nick0`, `Nick1`, `Nick2`, `Nick3` FROM `OG_Parties` WHERE `Nick0`='$Nick' OR `Nick1`='$Nick' OR `Nick2`='$Nick' OR `Nick3`='$Nick' LIMIT 1"; Après je fais des tests dans le script php, et j'appelle soit update soit delete suivant qu'il y ait encore au moins 1 joueur ou non sur la partie. De toute façon je n'aurai pas pu le faire en une seule requête car le delete dépend du nombre de places libres. Et évidemment, si j'avais précisé que y'avait un identifiant à la partie ça aurait été peut être plus simple pour vous. Merci quand même, @+ Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.