Posted July 2, 200718 yr 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! Edited July 2, 200718 yr by serik
July 2, 200718 yr 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
July 2, 200718 yr Author 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é.
July 2, 200718 yr Author 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, @+
Archived
This topic is now archived and is closed to further replies.