|
автор: Xman (16.11.2005 в 20:12) |
|
| Приветсвую всех, вновь собравшихся:)
Помогите отсортировать массив, полученный таким вот образом:
$query=mysql_query("SELECT id,type,name FROM items WHERE section=1 ;");
$items=mysql_fetch_array($query);
|
Нужно чтоб в массив $food помещались все $item, у которых type=1
в массив $tech - type=2
в $other - type=0
--------------------------
И еще один небольшой вопрос: что будет быстрее работать, то что нужно мне на PHP или то, что ниже,
но уже средствами sql?Что менее будет грузить сервер?
$query=mysql_query("SELECT id,name FROM items WHERE section=1 AND type=1;");
$food=mysql_fetch_array($query);
$query=mysql_query("SELECT id,name FROM items WHERE section=1 AND type=2;");
$$tech=mysql_fetch_array($query);
$query=mysql_query("SELECT id,name FROM items WHERE section=1 AND type=0;");
$other=mysql_fetch_array($query);
|
--------------------------
Спасибо за внимание!:) | |
|
|
|
|
|
|
|
для: Xman
(16.11.2005 в 20:12)
| | 1) Можно сделать так:
<?
$query=mysql_query("SELECT id,type,name FROM items WHERE section=1 ;");
while($items=mysql_fetch_array($query))
{
switch($items['type'])
{
case "1": { $food['id'] = $items['id']; $food['name'] = $items['name']; break; }
case "2": { $tech['id'] = $items['id']; $tech['name'] = $items['name']; break; }
case "0": { $other['id'] = $items['id']; $other['name'] = $items['name']; break; }
}
}
?>
|
2) Первый вариант будет работать быстрее, т.к. выполняется всего один запрос к БД. | |
|
|
|
|
|
|
|
для: Евгений Петров
(16.11.2005 в 22:13)
| | 2) Что-то мне кажется, что как раз наоборот второй вариант будет быстрее, не смотря на то, что используется 3 запроса - MySQL всё-таки на C писана, имеет кэш ключей и вообще зверски оптимизирована... если скорость волнует, лучше проверить экспериментальным путём - только первый результат следует выкинуть (он всегда будет немного дольше выполняться). | |
|
|
|