|
|
|
| Допустим есть довольно таки простой вывод из базы.
<?
$query= "SELECT id, id_category, category FROM `second_category` ORDER by category ASC";
?>
|
Объясните пожалуйста как можно избежать нагромождения селектов, что бы вывести результаты каждой категории в цикле, в разных местах.
Мне в голову приходит только
<?
$query1 = "SELECT id, id_category, category FROM `second_category` WHERE id_category = '1' ORDER by category ASC";
$query2 = "SELECT id, id_category, category FROM `second_category` WHERE id_category = '2' ORDER by category ASC";
$query3 = "SELECT id, id_category, category FROM `second_category` WHERE id_category = '3' ORDER by category ASC";
?>
|
Но это абсурд... :) | |
|
|
|
|
|
|
|
для: gofree
(11.09.2011 в 21:00)
| | Можно сделать так
<?
$query = "SELECT id, id_category, category FROM `second_category` ORDER by category ASC";
$result = mysql_query($query);
while($t = mysql_fetch_assoc($result)){
if($t['id_category'] == 1) {
}
if($t['id_category'] == 2) {
}
if($t['id_category'] == 3) {
}
}
?>
|
Хотелось бы, что бы подсказали с решением ДО цикла. | |
|
|
|
|
|
|
|
для: gOFREe
(11.09.2011 в 23:56)
| | Лучше всего поместить данные, получаемые из результирующей таблицы в какой-то промежуточный массив (а лучше сразу в несколько, по количеству формируемых блоков), а потом уже выводить его там где вам нужно, не дергая базу данных. | |
|
|
|
|
|
|
|
для: cheops
(12.09.2011 в 14:19)
| | Так пойдет?
<?
$query = "SELECT id, id_category, category FROM `second_category` ORDER by category ASC";
$result = mysql_query($query);
while($t = mysql_fetch_assoc($result)){
if($t['id_category'] == 1) {
$category1 = implode(',', $t['id_category']);
}
if($t['id_category'] == 2) {
$category2 = implode(',', $t['id_category']);
}
if($t['id_category'] == 3) {
$category3 = implode(',', $t['id_category']);
}
}
?>
|
| |
|
|
|
|
|
|
|
для: gOFREe
(12.09.2011 в 14:27)
| | Хм... думаю это не совсем то, что вам нужно, лучше поступить как-то так
<?php
$query = "SELECT id, id_category, category
FROM `second_category`
ORDER by category ASC";
$result = mysql_query($query);
if(!$result) exit("Ошибка выполнения запроса");
$category = array();
while($t = mysql_fetch_assoc($result)){
$category[$t['id_category']][$t['id']] = $t;
}
?>
| Тогда у вас получится двумерный массив $category, захотите вывести первую категорию, обращайтесь к $category[1], захотите третью - $category[3].
<?php
foreach($category[3] as $id => $value)
{
echo $value['category']."<br>";
}
|
| |
|
|
|
|
|
|
|
для: cheops
(12.09.2011 в 14:46)
| | Понял, спасибо! Соображалка плохо работает у меня ) | |
|
|
|