|
автор: isset (05.02.2005 в 19:34) |
|
| Есть каталог, в нем категории, как сделать возможность создание неограниченного количества категорий и субкатегорий?
Например:
Главная категория
- Субкатегория
-- подкатегория 2
-- подкатегория 3
--- подкатегория 4
- Субкатегория 2
Думаю понятно объяснил | |
|
|
|
|
автор: isset (05.02.2005 в 19:34) |
|
|
для: isset
(05.02.2005 в 19:34)
| | Интересует реализация на mysql | |
|
|
|
|
|
|
|
для: isset
(05.02.2005 в 19:34)
| | 1) создание таблицы category
2) создание таблицы subcategory
3) в subcategory создаем id_category - порядковый номер category
4) в category создаем id - порядковый номер
Дальше думаю понятно | |
|
|
|
|
|
|
|
для: isset
(05.02.2005 в 19:34)
| | Добавьте еще поле, например "cat" и храните значение "родителя" - если "0" то это главная категория. | |
|
|
|
|
автор: isset (05.02.2005 в 20:32) |
|
|
для: Artem S.
(05.02.2005 в 20:19)
| | Все это не то, каждая субкатегория может иметь свою субкатегория, а та может иметь еще субкатегорию и так до бесконечности...У меня не получилось реализовать такое | |
|
|
|
|
|
|
|
для: isset
(05.02.2005 в 20:32)
| | возьми любой древовидный форум.
смысл построения БД такойже как там, только вместо топиков и постов будут идти категории, подкатегории и прочее что там у тебя есть. | |
|
|
|
|
|
|
|
для: isset
(05.02.2005 в 20:32)
| | Это легко, вообщем создай в mysql 2 поля
id
parentid
ID - это порядковый номер категории
PARENTID - по умолчанию 0, если это суб категория, то должен быть тут id категории в каторой она находится, понил?
Вообще скачай отсюда ([url]phpnuke.ru[/url]) модуль Pages и к нему ещё хак от xRay и поймёшь как сделать! | |
|
|
|
|
автор: isset (05.02.2005 в 21:24) |
|
|
для: JIEXA
(05.02.2005 в 21:07)
| | Мне некогда разбирать готовые скрипты. Такое у меня тоже в голове крутится, но вот как потом на php это сделать? | |
|
|
|
|
|
|
|
для: isset
(05.02.2005 в 21:24)
| | На лови кусок моего кода:
этот кусок выводит глаыные категории:
<?php
$cat_res=mysql_query("SELECT * FROM articles_cat where parentid='0' order by title asc") or die ("Ошибка:".mysql_error()."");
include"themes/".$theme."/articles/cat/theme_top_cat.php";
while($cat_row=mysql_fetch_assoc($cat_res))
{
include"themes/".$theme."/articles/cat/theme_middle_cat.php";
}
?>
|
это подкатегории:
<?php
if($REQUEST_URI)
{
eregi("[[:digit:]]+",$REQUEST_URI,$uri_number);
$parseurl= $uri_number[0];
} else {
print"<b>Ошибка!</b>";
exit();
}
$subcat_res=mysql_query("SELECT * FROM articles_cat where cid=$parseurl order by title asc") or die("ошибка:<br>".mysql_error());
$subcat_row=mysql_fetch_array($subcat_res);
$des=$ctitle2 = $subcat_row['title'];
$parentid2 = $subcat_row['parentid'];
if ($parentid2!="0") $ctitle2=getparent($parentid2,$ctitle2);
$title= $ctitle2;
$keywords=$subcat_row['keywords'];
$res3=mysql_query("SELECT * FROM articles_cat where parentid=$parseurl") or die("ошибка:<br>".mysql_error()."");
$row3=mysql_num_rows($res3);
include"includes/header.php";
if($row3!="")
{
include"themes/".$theme."/articles/subcat/theme_top_subcat.php";
$subcat_res2=mysql_query("SELECT * FROM articles_cat where parentid='$parseurl'") or die ("Ошибка:".mysql_error()."");
while($subcat_row2=mysql_fetch_assoc($subcat_res2))
{
$title=$subcat_row2['title'];
$cid=$subcat_row2['cid'];
include"themes/".$theme."/articles/subcat/theme_middle_subcat.php";
}
include"themes/".$theme."/articles/subcat/theme_bottom_subcat.php";
}
?>
|
Вот добавление
<?php
function getparent($parentid,$title)
{
$parentid = intval(trim($parentid));
$row = mysql_fetch_array(mysql_query("SELECT * from articles_cat where cid='$parentid'"));
$cid = intval($row['cid']);
$ptitle = $row['title'];
$pparentid = $row['parentid'];
if ($ptitle!="") $title= $title." « ".$ptitle;
if ($pparentid!=0) {
$title=getparent($pparentid,$title);
}
return $title;
}
echo "<select style=\"width:100%\" name=\"a_cid\">";
$res = mysql_query("SELECT * FROM articles_cat order by parentid,title");
while($row7 = mysql_fetch_array($res))
{
$cid2 = $row7['cid'];
$ctitle2 = $row7['title'];
$parentid2 = $row7['parentid'];
if ($parentid2!="0") $ctitle2=getparent($parentid2,$ctitle2);
echo "<option value=\"$cid2\">$ctitle2</option>";
}
echo "</select><br></td>
?>
|
Я тебе кусками вырезал, вообщем пробуй! Я бы расписал подробно, но у меня инета мало! | |
|
|
|
|
|
|
|
для: isset
(05.02.2005 в 19:34)
| | Таблицу MySQL и приёмы работы с таким каталогом можно посмотреть в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=701 | |
|
|
|