Я пытаюсь выяснить, как перечислять КАТЕГОРИИ КОМПАНИИ и БРЕНДЫ, где макет будет выглядеть примерно так:
КОМПАНИЯ 1
КАТЕГОРИЯ 1:
BRAND X
БРЕНДИ
BRAND Z
КАТЕГОРИЯ 2
БРЕНД А
BRAND B
BRAND C
КАТЕГОРИЯ 3
БРЕНД А
BRAND X
Я недостаточно разбираюсь в PHP + MySQL, чтобы найти правильный результат поиска и PHP для этого.
Моя таблица выглядит примерно так:
КОМПАНИЯ | КАТЕГОРИИ | BRAND -------------------------------- Компания 1 | Категория 2 | Бренд A Компания 1 | Категория 2 | Бренд B Компания 1 | Категория 2 | Бренд C Компания 1 | Категория 1 | Бренд X Компания 1 | Категория 1 | Бренди Компания 1 | Категория 1 | Бренд Z Компания 1 | Категория 3 | Бренд A Компания 1 | Категория 3 | Бренд X
<?php $result = mysql_query(" SELECT * FROM some_table ORDER BY company, category, brand ") or trigger_error('Query failed in '. __FILE__ . ' on line '. __LINE__ .'. '. mysql_error(), E_USER_ERROR); if (mysql_num_rows($result)) { $companies = array(); while ($row = mysql_fetch_assoc($result)) { $companies[$row['company']][$row['category']][] = $row['brand']; } foreach ($companies AS $company => $categories) { echo '<h2>'. htmlentities($company, ENT_COMPAT, 'UTF-8') .'</h2>'; echo '<ul>'; foreach ($categories AS $category => $brands) { echo '<li>'. htmlentities($category, ENT_COMPAT, 'UTF-8'); foreach ($brands AS $brand) { echo '<br><em>'. htmlentities($brand, ENT_COMPAT, 'UTF-8') .'</em>'; } echo '<br> </li>'; } echo '</ul>'; } }
jsbin
Просто выберите все и поместите в хэш в php, что-то вроде строки
$rs = mysql_query("Select * from myTable"); $results = array(); while($row = mysql_fetch_assoc($rs)) { $results[$row['COMPANY']][$row['CATEGORY']][] = $row['BRAND']; }
$results
будет содержать структуру данных, например
array( 'Company 1' => array( 'Category 1' => array('Brand X', 'Brand Y') ... etc )
попробуйте var_dump($results)
чтобы сделать из этого больше смысла