2014-10-14 2 views
3

Я сейчас пытаюсь выяснить, почему мой код дает в качестве вывода только первую строку. Я сделал одну процедуру, выбрать все продукты, и я назвал его в PHP таким образом:mysql procedure return only one/first row

$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. Он всегда показывает первую строку.

+0

Проверьте процедуру код, Что он возвращается –

+0

список продуктов – Tari

+0

добавить код процедуры, что будет объяснить вашу проблему –

ответ

-1
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); 
} 
?> 
+0

Я уже сделал это, Это тот же результат. Он показывает только первую строку – Tari