Я пытаюсь сейчас 100 раз выяснить причину, по которой мой код выдает в качестве вывода только первую строку. Я сделал одну процедуру, которая выбирает все продукты, и я назвал ее в php следующим образом:
$query = "CALL create_helper()";
$exec = mysql_query( $query, $connexion );
while($row = mysql_fetch_row($exec)) {
var_dump( $row );
}CREATE PROCEDURE create_helper ()
BEGIN
DECLARE prod CURSOR FOR SELECT id FROM pC;
...
OPEN prod;
pd_loop: LOOP
FETCH pd INTO id_s;
IF finished = 1 THEN
LEAVE pd_loop;
END IF;
SELECT name, ag, pdt, pname FROM clt WHERE id = id_s;
...
END LOOP pd_loop;
CLOSE prod;
END;
Процедура под MySQL работает нормально, но единственная проблема в php. Это показывает всегда первый ряд.
Try it
Возвращает числовой массив строк, который соответствует выбранной строке, или FALSE, если строк больше нет.
mysql_fetch_row () выбирает одну строку данных из результата, связанного с указанным идентификатором результата. Строка возвращается в виде массива. Каждый столбец результата сохраняется в смещении массива, начиная со смещения 0.
mysql_fetch_array()
Fetch a result row as an associative array, a numeric array and also it fetches by both associative & numeric array.
<?php
$query = "CALL create_helper()";
$exec = mysql_query( $query, $connexion );
while($row = mysql_fetch_array($exec))
{
var_dump($row);
}
?>
Других решений пока нет …