mysql — вызов из хранимой процедуры PHP с курсором и объединением SQL не показывает все данные

Я создаю хранимую процедуру, которая отлично выполняется в MYSQL, но когда я вызываю ее из PHP, она показывает только те данные, которые соответствуют первым данным курсора.

Вот как я называю хранимую процедуру:

$sql = mysqli_query($db, "CALL MySP('".$ec4."')");

Вот как я получаю данные:

while ($ligne = mysqli_fetch_array($sql))

Спасибо

Данные хранимой процедуры

вызов php

while ($ligne = mysqli_fetch_array($sql)) {
echo '</br>';
echo '</br>'.$ligne["Agences"].'</br>';
echo '</br>'.$ligne["date_op"].'</br>';
echo '</br>'.$ligne["arrivee"].'</br>';
}

Вот моя хранимая процедура:

DELIMITER $
CREATE PROCEDURE `MySP`( date_op VARCHAR(10) )
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE ville_agence VARCHAR(50);
DECLARE cursor_i CURSOR FOR SELECT ville FROM villes;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cursor_i;
read_loop: LOOP
FETCH cursor_i INTO ville_agence;
IF done THEN
LEAVE read_loop;
END IF;
SELECT
Agences,
date_op,
(select Villes from grille a where a.Nom = b.Nom_de_Depart and a.`Type` ='A' LIMIT 1) as arrivee
FROM
grille b
where
b.`Type` = 'T'
and upper(Agences) in (ville_agence)

UNION

SELECT
Agences,
date_op,
(select Agences from grille a where a.Code = b.Code and a.`Type` = 'D' LIMIT 1) as arrivee
FROM
grille b
where  b.`Type` = 'A'
and upper(Agences) in (ville_agence);
END LOOP;
CLOSE cursor_i;
END

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …