X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Как правильно создать таблицу в MySQL?
phpuser
phpuser
Topic Starter сообщение 31.1.2010, 5:15; Ответить: phpuser
Сообщение #1


Народ кто знает хорошо MySQL подскажите плиз:
У меня есть 10 категорий, которые лежат в разных таблицах БД т.е. для категорий УРОКИ и СТАТЬИ одна таблица а для категории СКАЧАТЬ другая.
Сайт работает и так но как мне кажется это не правильно, мне кажется что нужно все категории хранить в одной таблице.
Создать одну таблицу и хранить в ней все категории для меня не проблема, проблема заключается в том как потом эти категории разместить в своих рубриках при условии что категории в БД будут в разброс т.к. будут добавляться новые категории старые удаляться и всё такое?
Пример:
[attachment=41856:]

P.S. Думаю что свою проблему я описал довольно понятно, но если кому то станет не понятно не ругайте ибо я её писал 4 ночи! :rolleyes:
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 1.2.2010, 16:49; Ответить: ZiTosS
Сообщение #2


phpuser, можно ввести 2 понятия:
Раздел - Набор списка категорий, соответствующих одной тематике (в применении к твоей задаче)
Категория - Элемент раздела включающий материалы более узкой направленности.

Твоя задача решается просто, создаём две таблицы:
1) Таблица разделов
sections(
   id - идентификатор раздела
   title - заголовок раздела
   ....
);

2) Таблица категорий
categoryes(
   id - идентификатор категории
   id_section - идентификатор раздела, к которому относится категория
   title - заголовок категории
   ....
);


проблема заключается в том как потом эти категории разместить в своих рубриках при условии что категории в БД будут в разброс т.к. будут добавляться новые категории старые удаляться и всё такое?

[php]<?php

// коннект к серверу и выбор базы

$sections = array(); // массив разделов

/* Нам нужно обойти все разделы и получить в них категории */
// получаем разделы

$sql = "SELECT id, title FROM sections"; // формируем запрос на получение всех разделов
$result = mysql_query($sql); // выполняем запрос
while( ($section = mysql_fetch_assoc($result)) !== false )
{
$id = $section['id']; // id раздела
$title = $section['title']; // название раздела

$sections[$id] = array(); // сообщаем, что $sections[$section['id']] - это массив
$sections[$id]['title'] = $title; // заносим в элемент массива title - название раздела
$sections[$id]['categoryes'] = array(); // сообщаем, что элемент массива $sections[$section['id']] categoryes - это массив
}

// получаем категории в разделах

$sql = "SELECT id, id_section, title FROM categorues"; // формируем запрос на получение всех категорий
$result = mysql_query($sql); // выполняем запрос
while( ($category = mysql_fetch_assoc($result)) !== false )
{
$id = $category['id']; // id категории
$id_section = $category['id_section']; // id раздела, к которому относится текущая категория

$sections[$id_section]['categoryes'][$id] = $category; // добавляем категорию как элемент массива $sections[$id_section]['categoryes'] с ключем id категории
}

/* Затем этот массив можно благополучно использовать. Например нам надо вывести массив категорий относящихся к разделу с id = 6 */

$categoryes_id_6 = $sections[6]['categoryes'];
// Ниже его можем обработать
foreach($categoryes_id_6 as $category)
{
echo "<a href='[ссылка_на_категорию]?id={$category['id']}'>{$category['title']}</a>"; // выводим ссылки на категории из раздела 6
}

?>[/php]
Можно конечно не формировать столь сложные массивы и не занимать так много памяти. А просто исполнять когда нужно SQL запрос на получение списка категорий по нужному разделу. Всё зависит от задачи.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Арбитражники, как ведете учет расходов и доходов?
12 Boymaster 1914 Вчера, 21:03
автор: MisterBit
Открытая тема (нет новых ответов) Создать видеоканал лучше в ютуб или телеграм?
17 uahomka 3216 Вчера, 11:58
автор: Omaxis
Горячая тема (нет новых ответов) Как вывести деньги в Украине с заблокированного Юмани ?
29 freeax 4813 17.4.2024, 1:19
автор: sergio11
Горячая тема (нет новых ответов) Как вы отдыхаете от работы за компом
148 adw-kupon.ru 19712 8.4.2024, 10:37
автор: Skyworker
Открытая тема (нет новых ответов) Как вы бросили работу и перешли на заработок с сайтов?
18 uahomka 3104 5.4.2024, 5:53
автор: Skyworker


 



RSS Текстовая версия Сейчас: 20.4.2024, 2:25
Дизайн