Intereting Posts
как использовать переменную данных в mkdir на сервере linux с FTP? Добавление разрыва в название продукта на страницах магазина на определенную длину Как использовать мониторы в PHP? Лучший способ хранения & (Амперсанд) в базе данных MySQL Payum – PaymentDetails – объект в выполненном действии, где Поместите содержимое файла в массив с разделителем и сохраните его в базе данных (php) MPDF показывает дополнительную страницу в конце file_get_contents, когда URL не существует Symfony2, Twig JSON шаблоны vs json_encode: что подходит для этой ситуации Как интегрировать два цикла for / foreach в следующем сценарии? класс не найден при расширении класса, реализующего интерфейс в PHP Пустые переменные перед публикацией с помощью jQuery ТОЛЬКО Использование NSURLRequest для передачи пар ключ-значение в PHP-скрипт с помощью POST Как поменять два значения в массиве с помощью индексов? Rijndael / AES расшифровка C # для преобразования PHP

Вызов mysql ПРОЦЕДУРЫ внутри цикла while работает только в первый раз

У меня есть некоторые данные из базы данных DB, которые я публикую в таблице. Для каждой строки таблицы (каждый цикл цикла while) мне нужно вызвать хранимую процедуру для вычисления данных для последней <td> моей таблицы.

Вот какой код:

 $s = $lk->query("SELECT * FROM A_USERS JOIN A_DATA WHERE A_DATA.id_user = A_USERS.id AND A_USERS.usr_att = 1 AND A_DATA.act_data = 1 AND A_DATA.a_att = 1 AND A_DATA.qty IS NOT NULL ORDER BY ID ASC"); while ($dato = $s->fetch_object()) { print '<tr>'; print '<td>'; print $dato->id; print '</td>'; //others cells $GetP = $lk->query("CALL GetPr($dato->qty, '$dato->prod')"); if(mysqli_num_rows($GetP) === 1){ while($p_db = mysqli_fetch_array($GetP)){ $p = $p_db['p']; } $format = number_format(round($p, 1), 2, ',', '\''); //some other stuff here... }else{ print '<td>'; print 'ERROR'; print '</td>'; } print '</tr>'; } 

Проблема в том, что ТОЛЬКО первый цикл while вызывает процедуру, которая возвращает 1 row . Else Я всегда получаю ERROR на этом <td> что означает, что хранимая процедура не вернула 1 row .

Зачем?

РЕДАКТИРОВАТЬ

Хранимая процедура:

 CREATE DEFINER=`...` PROCEDURE `GetPr`(IN `cli_qty` INT, IN `cli_prod` VARCHAR(10) CHARSET ascii) BEGIN SET @cli_qty = cli_qty; SET @q = (SELECT qty FROM MRG_H ORDER BY ABS(@cli_qty - qty) ASC LIMIT 1); SET @cli_prod = cli_prod; IF @cli_prod = 'OECO' THEN SET @marg = (SELECT (m+v) FROM MRG_H JOIN DT WHERE m <> '' AND q = @q AND par = 'MarOECO'); ELSE SET @marg = (SELECT m FROM MRG_H WHERE m <> '' AND q = @q); END IF; SELECT (Med+@marg)*((Val+100)/100) AS P, D_aaaammgg AS Date FROM PL JOIN TVA WHERE I_D = 0 AND Med <> '' AND Date_f = '' ORDER BY Iden DESC LIMIT 1; END 

ОШИБКА MYSQLI:

 Error: 2014-Commands out of sync; you can't run this command now