Создание разделов и подразделов

  • Автор темы Павлик 1717
  • Дата начала

Павлик 1717

Guest
Создание разделов и подразделов

Приветствую всех!

Суть:

Стоит задача зделать админскую часть с возможностью добавлять категорию товара например: Пылесосы, насосы, стиральные машины итд.
А в каждую котегорию допустим пылесосы вводить модели пылесосов, со стнандартным кол-вом полей: код товара, название, описание, цена итд.

Мои предположения:
С учетом того что я новичок, мне приходит в голову слишком замороченая схема, если кто уже делал подобное подскажите пожалуйста в каком направлении двигаться.

Все форумы изрыл, есть нечто глобальное, в чем пока разобраться мне очень сложно, путаюсь.

Даже если дадите ссылку буду рад! Спасибо.

PS
На придирки и высмеевание внимание обещаю не обращать!
 

Cougar

Кошак
Двигаться в таком направлении, например:
[sql]
CREATE TABLE category (
id int not null auto_increment primary key,
parent_id int default null,
name varchar(128) not null default 'Unknown category'
)
[/sql]

Дальше - в поиск по форуму. Подобный вопрос здесь поднимается с завидной регулярностью.
 

Павлик 1717

Guest
Значит я создаю отдельную таблицу в которой храню название категорий, а как к ней привязать вторую таблицу привязанную к конкретной категории?

-~{}~ 09.12.04 14:42:

Originally posted by Cougar
Двигаться в таком направлении, например:
[sql]
CREATE TABLE category (
id int not null auto_increment primary key,
parent_id int default null,
name varchar(128) not null default 'Unknown category'
)
[/sql]

Дальше - в поиск по форуму. Подобный вопрос здесь поднимается с завидной регулярностью.
Значит я создаю отдельную таблицу в которой храню название категорий, а как к ней привязать вторую таблицу привязанную к конкретной категории?
 

Gas

может по одной?
Создаёшь 2 таблицы.
Таблица с категориями и таблица с товарами, каждый товар ссылается на какую-то категорию полем category_id. Если не понятно, то лучше почитай сначала литературку на предмет проектирования баз данных.

-~{}~ 09.12.04 13:47:

Имхо, это самый простой вариант, но тебя должен устроить.
 

Frol

Новичок
Gas
самый простой для чего?

человеку надо просто сходить в поиск.
 

Павлик 1717

Guest
Originally posted by Gas
Создаёшь 2 таблицы.
Таблица с категориями и таблица с товарами, каждый товар ссылается на какую-то категорию полем category_id. Если не понятно, то лучше почитай сначала литературку на предмет проектирования баз данных.

-~{}~ 09.12.04 13:47:

Имхо, это самый простой вариант, но тебя должен устроить.
Ок дружище спасибо, буду морочаться, но к сожалению литературы по этой теме нет, вот настольная у меня только: профессиональное пхп программирование, справочник вебмастера, и прочая лабуда по эскуэлю там только справочники, если можешь, подскажи путевое издание специализирующиеся на пхп с эскуэлем...

-~{}~ 09.12.04 14:57:

Originally posted by Frol
Gas
самый простой для чего?

человеку надо просто сходить в поиск.
Сиджу читаю, но нечего пока конкретного нет, а проблемма насамом деле в незнании организации баз данных и их синтакиса.
 

Cougar

Кошак
Павлик 1717
Как для новичка - полезно будет поискать книгу "MySQL и mSQL" издательства O`Reilly (бело-розовая обложка).
Там и язык SQL описан, и что такое нормализация (вкратце), и справочник есть. Для новичка - самое оно. И книга недорогая.
 

Павлик 1717

Guest
Originally posted by Cougar
Павлик 1717
Как для новичка - полезно будет поискать книгу "MySQL и mSQL" издательства O`Reilly (бело-розовая обложка).
Там и язык SQL описан, и что такое нормализация (вкратце), и справочник есть. Для новичка - самое оно. И книга недорогая.
Спасибо огромное, давно хочу преобрести чтиво, только вот глупые фальянты попадаются где тупо мануал распечатан.
Может подскажешь каким инет магазином воспользоваться?
Буду примного признателен.! :)

-~{}~ 09.12.04 15:28:

Originally posted by Cougar
Павлик 1717
Как для новичка - полезно будет поискать книгу "MySQL и mSQL" издательства O`Reilly (бело-розовая обложка).
Там и язык SQL описан, и что такое нормализация (вкратце), и справочник есть. Для новичка - самое оно. И книга недорогая.
Изрыл весь нет, нет такой книги не укого, а точнее она есть но в продаже нет, где купить???
 

neko

tеam neko
по sql есть МАССА статей и документации без всяких книг
даже в документации по mysql более чем достаточно примеров
 

Павлик 1717

Guest
Вот где собака зарыта: http://myphp.net.ru/lessons/index.php?18 :) изучать придется долго!!!

-~{}~ 09.12.04 16:45:

Мои доводы по данному примеру я написал ниже после примера
*************************************************
CREATE TABLE catalogs (
cat_id int(11) NOT NULL auto_increment,
parent_id int(11) NOT NULL default '0',
cat_name varchar(200) NOT NULL default '',
PRIMARY KEY (cat_id)
)
Вставим в полученную таблицу несколько записей:
// функция для вставки записей в MySQL
function sql_insert($parent_id, $cat_name) {
$query = "INSERT INTO catalogs(parent_id, cat_name) VALUES('".(int)$parent_id."', '$cat_name')";
mysql_query($query) or die(mysql_error());
return mysql_insert_id(); // возвращаем id внесенной записи
}
// соединение и выбор базы данных рассматривать не будем
$level[1][0] = sql_insert("0", "Программирование");
$level[2][0] = sql_insert($level[1][0], "Веб программирование");
$level[2][1] = sql_insert($level[1][0], "Системное программирование");
$level[3][0] = sql_insert($level[2][0], "PHP");
$level[3][1] = sql_insert($level[2][0], "Perl");
$level[3][2] = sql_insert($level[2][1], "C++");
$level[4][0] = sql_insert($level[3][2], "Visual C++");
$level[3][3] = sql_insert($level[2][1], "Delphi");

// Вторая ветвь
$level[1][1] = sql_insert("0", "Базы данных");
$level[2][2] = sql_insert($level[1][1], "MySQL");
$level[2][3] = sql_insert($level[1][1], "Oracle");
$level[2][4] = sql_insert($level[1][1], "MS Access");
Теперь выведем полученное дерево:
function get_tree($parent_id = 0, $prefix = "") {
global $out;
$query = "SELECT * FROM catalogs WHERE parent_id = '$parent_id'";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) {
$out .= $prefix.$row['cat_name']."<br>";
get_tree($row['cat_id'], $prefix."&nbsp;&nbsp;");
}
return $out;
}
echo get_tree();
Так как мы имеем многоуровневое дерево, функцию get_tree() нам приходся вызывать рекурсивно, для одноуровневых деревьев (не больше одного уровня вложенности) этого не требуется.
Как видите, алгоритм построения такого рода деревьев очень прост.
К достоинствам данного метода построения деревьев можно отнести то, что каждый элемент дерева обладает достаточной степенью обособленности, так как с родителем его связывает значение только одного поля, которое мы без проблем можем изменить и элементарно поменять тем самым родителя. К недостаткам же - крайне неудобную работу при высоких уровнях вложенности. Так что этот алгоритм оптимально подходит для одноуровневых деревьев и деревьев с невысоким уровем вложенности (2 - 3 уровня).

**************************************************

Короче говоря принялся изучать, но не чего не понял, ретранслирую текст выше.

я создаю одну таблицу с полями:
cat_id int(11) NOT NULL auto_increment,
parent_id int(11) NOT NULL default '0',
cat_name varchar(200) NOT NULL default '',
PRIMARY KEY (cat_id)

И что далее? каждый раздел это новая таблица?

Как вводить новые катогории???

естественно как оформлять админство в обсуждении не нуждается.
Но я себе вижу его так:
Введи название категории -> категория такаято создана, далее выводятся поля для заполнения товаров в данной категории, код, название итд.
в результате мне нужно выводить только те товары которые пренадлежать к данной категории.
я заполняю поля нажимаю добавить, и все готово, введен товар который пренадлижит к данной категории введен в базу.

Непонятно одно как это реализуется!!! Создаются несколько таблиц или одна из которой в последствии нужно выводить данные соответсвующие значению поля с названием категории...

Блин народ помогите, запарился уже!!!!!
 
Сверху