2013-04-15 5 views
0

Я извлекаю результаты из db с PDO :: FETCH_ASSOC. Проблема в том, что я делаю это дважды в одном файле. Это известная проблема? Что было бы альтернативой?PDO множественный выбор того же запроса

Вот мой код:

FIRST TIME 

while($row = $ordersQuery->fetch(PDO::FETCH_ASSOC)) 
     { 
      $totalAmount += $row['clientPrice']/100; 
     } 
     echo $totalAmount; 

SECOND TIME 

    while($row = $ordersQuery->fetch(PDO::FETCH_ASSOC)) 
      { 
    .... 
    } 

Всякий раз, когда я удалить первую выборку, то второй работает отлично. Если у меня есть оба, второй ничего не возвращает.

Спасибо!

ответ

4

Вы не можете извлекать из БД несколько раз, как это. Сделайте это вместо этого:

$orders = $ordersQuery->fetchAll(PDO::FETCH_ASSOC); 

... 

foreach ($orders as $val) { 
    // stuff 1 
} 

... 

foreach ($orders as $val) { 
    // stuff 2 
} 
+1

Указатель дескриптора ('$ ordersQuery') не содержит набор результатов. Вы хотите перепрограммировать '$ orders'? –

+0

Ах да, да. – JRL

0

Используйте fetchAll(), который вернет массив. Затем вы можете запрограммировать его столько раз, сколько хотите:

$ orders = $ ordersQuery-> fetchAll (PDO :: FETCH_ASSOC);

Смежные вопросы