Есть HTML код и таблица (category) из 15 brand и id. Как грамотно вывести данные в теги li где li=сектор 1? Каждые 5 наименований относятся разным разделом. Пример по id, Вещи от 1-5, Для дома 6-11 и Хобби от 11-15.
Главное. Чтобы потом когда я буду делать Подачу объявления, с таким же запросом мог эти значения брендов спокойно передавать в бд в другую таблицу. И я мог бы перехватывать эти значения, для того чтобы выводить товар по категориям. Вроде понятно объяснил
<li><a id="index1"><img src="http://www.cyberforum.ru/images/things.png" id="things-images">Вещи</a>
<ul class="category-section">
<li><a href=""><strong>Все вещи</strong></a></li>
<li><a>сектор 1</a></li>
</ul>
</li>
<li><a id="index2"><img src="http://www.cyberforum.ru/images/for_home.png" id="home-images">Для дома</a>
<ul class="category-section">
<li><a href=""><strong>Все для дома</strong></a></li>
<li><a>сектор 1</a></li>
</ul>
</li>
<li><a id="index3"><img src="http://www.cyberforum.ru/images/hobby.png" id="hobby-images">Хобби</a>
<ul class="category-section">
<li><a href=""><strong>Все для хобби</strong></a></li>
<li><a>сектор 1</a></li>
</ul>
</li>
category
Такая архитектура базы данных никуда не годится. Но если уже начал, и не хочется переделывать, тогда добав еще один столбец в таблицу категорий, например category_type
, после id
. Либо VARCHAR
и указывать название словом, либо INT
и указывать номер этого типа. Потом, чтобы не заморачиваться, делаешь простейший запрос на выборку, получаешь все данные. Потом проходишься циклом и группируешь по этому category_id
в новый массив. Как то так.
А вот на странице где этот список выводится, список выводишь цыклом:
<?php foreach($categoryArr as $category): ?>
<ul class="category-section">
<li> <?= $category['name'] ?>
</ul>
<?php endforeach; ?>
Упрощено, конечно, но должно быть понятно)
UPDATE Добавил примерные таблицы, и немного кода, работоспособность не проверял, но кажется всё должно работать. Если что, исправлю.
Групы категорий
"CREATE TABLE `category_group` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`title` VARCHAR(55) NOT NULL,
`deleted` INT(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
ENGINE=MyISAM";
id - уникальный идентификатор
title - название группы (для админ панели, если такая будет, все ради удобства)
deleted - если надо удалить категорию, принимает значения 0 и 1
Таблицы категорий
"CREATE TABLE `category` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`group_id` INT(11) NOT NULL,
`url` VARCHAR(255) NOT NULL,
`title` VARCHAR(35) NOT NULL,
`meta_title` VARCHAR(35) NOT NULL,
`meta_description` TEXT NOT NULL,
`meta_keywords` TEXT NOT NULL,
`hidden` INT(11) NOT NULL DEFAULT '0',
`deleted` INT(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
ENGINE=MyISAM";
id - уникальный идентификатор
group_id - идентификатор для групы, іd берется из таблицы 'category_group'
url - адрес каждой категории
title - название категории (еще выводится в теге TITLE)
meta_title - заголовок (мета-данных)
meta_description - описание (мета-данные)
meta_keywords - ключевые слова (мета-данные)
hidden - если надо будет скрыть категорию, принимает значения 0(показано) и 1(скрыто)
deleted - если надо удалить категорию, принимает значения 0(актуальная) и 1(удалена)
Теперь работа с БД:
$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) or die(mysqli_error($link));
$group_query = "SELECT * FROM category_group WHERE deleted = 0";
$res = mysqli_query($link, $group_query) or die(mysqli_error($link));
while ($row = mysqli_fetch_assoc($res))
$groupTemp[] = $row;
$category_query = "SELECT * FROM category WHERE visible=0 AND deleted=0";
$res = mysqli_query($link, $category_query) or die(mysqli_error($link));
while ($row = mysqli_fetch_assoc($res))
$categoryTemp[] = $row;
Теперь делаем из двух массивов один
for ($i = 0; $i < count($groupTemp); $i++) {
for ($o = 0; $o < count($categoryTemp); $o++)
if ($groupTemp[$i]['id'] == $categoryTemp[$i]['group_id']) {
$categoryByGroup[$groupTemp[$i]['title']]['group_title'] = $groupTemp[$i]['title'];
$categoryByGroup[$groupTemp[$i]['title']][] = $categoryTemp[$i];
}
}
И наконец-то вывод:
<? foreach ($categoryByGroup as $group): ?>
<ul class="category-section">
<?php foreach ($group as $category): ?>
<li><a href="<?= $category['url'] ?>"> <?= $category['title'] ?> </a></li>
<?php endforeach; ?>
</ul>
<? endforeach; ?>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
ЗдравствуйтеДелаю Flex проект на Flash Builder с php типом сервера
Всем приветтакая проблема я учу php и я придумал пример благодаря которому мой личный бизнес и мои знания php вырастут до новых высот ) Это будет...
Есть приложение на андройд (задания с фриланс сайта)Через Fiddler смог выловить http запрос для получения этих заданий