21 ошибка программиста PHP. Часть 2
Страница 6. Обработка результатов выборки средствами PHP


Обработка результатов выборки средствами 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";
?>

 
« Предыдущая статья   Следующая статья »