Страница 6 из 12 Обработка результатов выборки средствами PHP Нередко программист намеренно не сортирует выборку при запросе, перекладывая эту работу на PHP. Такой подход неэффективен, ибо сортировка средствами SQL проходит намного быстрее, чем в PHP. Для сортировки результатов рекомендуем применять синтаксис SQL (ORDER BY), а не PHP-функцию ksort(). Рассмотрим пример использования ksort() для сортировки выборки по имени (name): <?php $statement = "SELECT name, email, phone FROM some_table "; $statement .= "WHERE name IS LIKE '%baggins'"; $result = @sql_db_query ($statement, "samp_db", $conn); if (!$result) { die (sprintf ("Ошибка [%d]: %s", sql_errno (),sql_error ())); } while ($row = @sql_fetch_array ($result)){ $matches[ $row[name] ] = array ($row[email], $row[phone]); } ksort ($matches); ?> Возникает вопрос: а почему бы ни провести сортировку результатов во время выборки? Это избавит нас от необходимости проходить по всему массиву с результатами дважды. Итак, убираем ksort() и исправляем SQL-запрос, добавив ORDER BY: <?php $statement = "SELECT name, email, phone FROM some_table "; $statement .= "WHERE name IS LIKE '%baggins' ORDER BY name"; ?> |