Bonjour,
Ca fait depuis un bon moment que je galère à récupérer plusieurs lignes à partir d'une procédure stockée. J'arrive à récupérer seulement la dernière ligne, du coup, est ce que c'est la récupération qui doit se faire autrement que par les méthodes habituelles ou alors c'est ma procédure qui est mal construite ?
La voici :
Et je récupère le résultat comme suit :
Et ça m'affiche que le dernier idJoueur.
Auriez vous une petite idée ?
Ca fait depuis un bon moment que je galère à récupérer plusieurs lignes à partir d'une procédure stockée. J'arrive à récupérer seulement la dernière ligne, du coup, est ce que c'est la récupération qui doit se faire autrement que par les méthodes habituelles ou alors c'est ma procédure qui est mal construite ?
La voici :
CREATE PROCEDURE rechercheJoueur (IN minX INT, IN maxX INT, IN minY INT, IN maxY INT)
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE var_idJoueur INT(11);
DECLARE i INT DEFAULT 0;
DECLARE curseur1 CURSOR FOR SELECT idJoueur
FROM joueur
WHERE x BETWEEN minX and maxX and y BETWEEN minY and maxY AND derniereActualisation > NOW() - INTERVAL 600 SECOND AND idCarte = 0;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
OPEN curseur1;
REPEAT
FETCH curseur1 INTO var_idJoueur;
IF NOT done THEN
SELECT var_idJoueur;
END IF;
UNTIL done
END REPEAT;
CLOSE curseur1;
END|
Et je récupère le résultat comme suit :
$req = mysql_query("CALL rechercheJoueur(10,50,10,50);");
while ($data = mysql_fetch_assoc($req)) {
echo $data['var_idJoueur'];
}
Et ça m'affiche que le dernier idJoueur.
Auriez vous une petite idée ?