I'm trying to figure out how to list COMPANY 's CATEGORY 's and BRAND 's, where the layout would look similar to this:
COMPANY 1
CATEGORY 1:
BRAND X
BRAND Y
BRAND Z
CATEGORY 2
BRAND A
BRAND B
BRAND C
CATEGORY 3
BRAND A
BRAND X
I'm not familiar enough with PHP + MySQL to find the right SEARCH and PHP output in order to achieve this.
My table looks similar to this:
COMPANY | CATEGORY | BRAND
--------------------------------
Company 1 | Category 2 | Brand A
Company 1 | Category 2 | Brand B
Company 1 | Category 2 | Brand C
Company 1 | Category 1 | Brand X
Company 1 | Category 1 | Brand Y
Company 1 | Category 1 | Brand Z
Company 1 | Category 3 | Brand A
Company 1 | Category 3 | Brand 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 '
'. htmlentities($company, ENT_COMPAT, 'UTF-8') .'
';echo '
- ';
foreach ($categories AS $category => $brands) {
echo '
'. htmlentities($category, ENT_COMPAT, 'UTF-8');foreach ($brands AS $brand) {
echo ''. htmlentities($brand, ENT_COMPAT, 'UTF-8') .'';
}
echo '
';}
echo '
';}
}