Повторное использование результата sql-запроса

vistax

Новичок
Здравствуйте. Возникла проблема с повторным использованием результата выборки из БД. В php очень не силён, поэтому сильно не ругайте.
Задача вот в чем:
Делается запрос из таблицы, затем циклом производится проход по массиву и отбор нужных данных.
Код:
while ($data = mysql_fetch_assoc($qr_result)) {
// делаем что-то
}
проблема в том, что после такого прохода в массиве $data ничего не остается. а мне нужно использовать этот же массив в других местах. делать каждый раз запрос к БД не очень логично. Как выйти из такой ситуации?
 

Vano

Новичок
// делаем что-то
$result_array[] = $data;
}
$result_array - вот будет массив.
 

hell0w0rd

Продвинутый новичок
Нет ни одной причины в современной разработке использовать mysql_*, или mysqli_. А раз так - возьми PDO и воспользуйся методом fetchAll.
Вот тебе не плохая обертка: http://nkt.github.io/flame/
 

vistax

Новичок
// делаем что-то
$result_array[] = $data;
}
$result_array - вот будет массив.
спасибо. просто никогда не работал с пхп и в принципе с вебом
а можно ли теперь работать с массивом как с ассоциативным?
нужно пройтись по всему массиву, проверить элемент массива на условие и сделать с ним некоторые действия
 

Vano

Новичок
foreach($result_array as $value) // для каждого элемента($value) массива ($result_array)
{
$value // сделать чтото
}

Да можно, ты же скопировал всю запись $data в новую ячейку массива $result_array, вот таким способом $result_array[] = $data; И так ты сделал так с каждой записью, которые ты достал из БД. В итоге у тебя $result_array[0] - первая запись которую нашла БД, $result_array[1] - вторая и т.д. Для того чтобы пройтись по всем записям используют foreach
 

vistax

Новичок
foreach($result_array as $value) // для каждого элемента($value) массива ($result_array)
{
$value // сделать чтото
}

Да можно, ты же скопировал всю запись $data в новую ячейку массива $result_array, вот таким способом $result_array[] = $data; И так ты сделал так с каждой записью, которые ты достал из БД. В итоге у тебя $result_array[0] - первая запись которую нашла БД, $result_array[1] - вторая и т.д. Для того чтобы пройтись по всем записям используют foreach
все понял, спасибо большое за разъяснения. все получилось! буду учится.
 
Сверху