Я получаю результаты из db с PDO :: FETCH_ASSOC. Проблема в том, что я делаю это дважды в одном файле. Это известная проблема? Что было бы альтернативой?
Вот мой код:
FIRST TIME while($row = $ordersQuery->fetch(PDO::FETCH_ASSOC)) { $totalAmount += $row['clientPrice']/100; } echo $totalAmount; SECOND TIME while($row = $ordersQuery->fetch(PDO::FETCH_ASSOC)) { .... }
Всякий раз, когда я удаляю первую выборку, вторая работает нормально. Если у меня есть оба, второй ничего не возвращает.
Благодаря!
Вы не можете извлекать из БД несколько раз, как это. Сделайте это вместо этого:
$orders = $ordersQuery->fetchAll(PDO::FETCH_ASSOC); ... foreach ($orders as $val) { // stuff 1 } ... foreach ($orders as $val) { // stuff 2 }
Используйте fetchAll (), который вернет массив. Затем вы можете прокручивать его столько раз, сколько хотите:
$ orders = $ ordersQuery-> fetchAll (PDO :: FETCH_ASSOC);