Intereting Posts
memcache не работает над окнами? Если вы очистите содержимое (ob_flush) запроса AJAX, содержимое загрузится? preg_match имя пользователя regex validation позволяет> и <несмотря на то, что эти символы не являются белыми Что было бы хорошим образцовым проектом, чтобы попросить потенциального программиста кодировать во время процесса найма? Надежно воспроизвести на C # устаревший метод хэширования пароля, реализованный в PHP использовать «глобальное пространство имен»; Как избежать неопределенного смещения Приравнивание переменных Javascript и PHP ошибка скручивания SSL-сертификата Как загрузить фотографию в конкретный альбом, а если нет, создайте этот альбом? как установить результат BackgroundWorker в TextView Как сделать активную панель навигации в php? Как проверить, является ли введенное значение валютой Как получить канал RSS канала Youtube после 2015 года 20 апреля (без API v3)? Как определить DIRECTORY_SEPARATOR для платформ Windows и Linux?

PHP MySQL отображает несколько строк, сгруппированных по общим полям

Я пытаюсь выяснить, как перечислять КАТЕГОРИИ КОМПАНИИ и БРЕНДЫ, где макет будет выглядеть примерно так:

КОМПАНИЯ 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>&nbsp;</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) чтобы сделать из этого больше смысла