04-05-2013, 06:00 PM
Si le joueur ne peux voir que son village (autrement dit, il n'a qu'un village), alors pas besoin de paramètre GET:
Si le joueur peut avoir plusieurs villages, alors tu peux utiliser un paramètre "GET" qui ne prend non pas le n° du village, mais le n° d'ordre du village dans la requète:
Tu peux aussi stocker ce n° (le $_GET[]) dans une variable de session, et permettre au joueurs d'incrémenter/décrémenter ce n°. Ainsi, aucune paramètre "GET" ne spécifie directement un numéro: les paramètres GET ne spécifient qu'un +1 ou -1 (et ce n'est même pas un +1/-1 de l'id du village, mais un +1/-1 du numéro du village dans la liste des villages possédés par le joueur).
SELECT * FROM village WHERE player_id = ? [LIMIT 1]
Si le joueur peut avoir plusieurs villages, alors tu peux utiliser un paramètre "GET" qui ne prend non pas le n° du village, mais le n° d'ordre du village dans la requète:
SELECT * FROM village WHERE player_id = ? [ORDER BY id ASC] LIMIT $_GET['numero'], 1
(Attention: l'exemple est une horreur niveau injection SQL, donc à ne pas utiliser tel quel, c'est pour le principe)Tu peux aussi stocker ce n° (le $_GET[]) dans une variable de session, et permettre au joueurs d'incrémenter/décrémenter ce n°. Ainsi, aucune paramètre "GET" ne spécifie directement un numéro: les paramètres GET ne spécifient qu'un +1 ou -1 (et ce n'est même pas un +1/-1 de l'id du village, mais un +1/-1 du numéro du village dans la liste des villages possédés par le joueur).
Code PHP :
<?php
$_SESSION['numero'] += (int)($_GET['increment']) - (int)($_GET['increment']);
SELECT * FROM village WHERE player_id = ? [ORDER BY id ASC] LIMIT $_SESSION['numero'], 1
Pas de risque d'injection SQL d'ailleurs.Pourquoi ne stockerais-tu pas les id de villages accessibles au joueur dans une variable de session? En stockant la liste des id de villages dans la $_SESSION du joueur, tu éviteras de faire sans arrêt la même requête pour vérifier quel(s) village(s) le joueur possède.
PS: comment fais-tu, Sephi, pour avoir les colorations syntaxiques JAVA ou ici, SQL?
Trouvé, il suffit d'utiliser "code=sql" au lieu de la seule balise "code"