JeuWeb - Crée ton jeu par navigateur
[Réglé] P'ti souci avec sprintf() - 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 : [Réglé] P'ti souci avec sprintf() (/showthread.php?tid=598)



[Réglé] P'ti souci avec sprintf() - Caribou - 30-07-2007

Salut tous,

J'avance doucement en cette période d'été, la chaleur surement et l'appel de la plage :glace:

J'ai un p'ti souci avec la fonction sprintf pour mes requetes, en faite sur certaines requete je reutilise plusieurs fois la même variable, et j'ai pas trop compris comment la reutilisé sans la redeclaré en argument dans la fonction... bon je sais pas si j'utilise les bons terme lol

Donner une exemple ce sera plus clair :

Code :
$query = sprintf("SELECT * FROM `game_guilds_allies` WHERE id_guild='%s' OR id_allied_guild='%s'",$_SESSION['GId'],$_SESSION['GId']);

Comme vous pouvez voir j'ai ecris deux fois ma variable session, c'est la seul façon que j'ai trouvé pour faire marcher correctement la fonction, mais je realise bien que c'est pas normal lol

Je suis aller lire sur php.net et ça parlait de %1$s, j'ai essayer sous cette forme

Code :
$query = sprintf("SELECT * FROM `game_guilds_allies` WHERE id_guild='%1$s' OR id_allied_guild='%1$s'",$_SESSION['GId']);

Mais ça ne fonctionne pas, peut etre parce que ça ne s'applique que si il y a plusieurs arguments utilisé, mais 1 seul ça n'a pas l'air de passé.
Il existe un autre moyen ?
Sinon tant pis c'est pas non plus capital, c'est juste un p'ti souci de faire les choses bien.


RE: [Réglé] P'ti souci avec sprintf() - Caribou - 30-07-2007

Bon c'est bon je me suis auto-corrigé, ça marche bien le swapping en faite c'est juste que ça faisait bugger dans des double quotes.

Code :
$query = sprintf("SELECT * FROM `game_guilds_allies` WHERE id_guild=%1\$s OR id_allied_guild=%1\$s",$_SESSION['GId']);

je retire les quotes et je met un backslash, et c'est bon ça fonctionne bien.