|
|
|
| скриптом выводятся категории
$cat=$_GET['cat'];
$result = $db->sql_query("SELECT id, modul, title, description, img, language, parentid FROM ".$prefix."_categories ORDER BY modul ASC");
while (list($sid, $modul, $title, $description, $img, $language, $parentid) = $db->sql_fetchrow($result)) {
if($parentid==0)$content .= "<li class=\"category-top\"><span class=\"top-span\"><a class=\"category-top\" href=\"?cat=$sid\">$title</a></span></li>\n";
$result = $db->sql_query("SELECT id, modul, title, description, img, language, parentid FROM ".$prefix."_categories WHERE parentid='$cat' ORDER BY modul ASC");
$content .= "<div>";
while (list($sid, $modul, $title, $description, $img, $language, $parentid) = $db->sql_fetchrow($result)) {
$title =($title);
$content .= "<a class=\"menu_right_sub\" href=\"#\">".($title)."</a>";
}
$content .= "</div>";
}
|
при нажатии должны появляться под категории под конкретной категорией как на сайте 100moek.ru подскажите как правильно сделать | |
|
|
|
|
|
|
|
для: dirol
(25.03.2011 в 21:57)
| | помогите пожалуйста | |
|
|
|
|
|
|
|
для: dirol
(25.03.2011 в 21:57)
| | Подкатегории хранятся в той же таблице, что и категории? Если да, то по каким столбцам они связаны? | |
|
|
|
|
|
|
|
для: cheops
(26.03.2011 в 10:44)
| | да в тойже
--
-- Структура таблицы `cms_categories`
--
CREATE TABLE `cms_categories` (
`id` int(11) NOT NULL auto_increment,
`modul` varchar(50) NOT NULL default '',
`title` varchar(100) NOT NULL default '',
`description` text NOT NULL,
`img` varchar(100) NOT NULL default '',
`language` varchar(30) NOT NULL default '',
`parentid` int(11) NOT NULL default '0',
`level` int(11) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `modul` (`modul`),
KEY `parentid` (`parentid`)
) ENGINE=MyISAM AUTO_INCREMENT=352 DEFAULT CHARSET=utf8 AUTO_INCREMENT=352 ;
--
-- Дамп данных таблицы `cms_categories`
--
INSERT INTO `cms_categories` VALUES (1, 'blanco', 'Мойки гранитные', '', '', '', 0, 0);
INSERT INTO `cms_categories` VALUES (2, 'blanco', 'Мойки нержавеющие', '', '', '', 0, 0);
INSERT INTO `cms_categories` VALUES (3, 'blanco', 'Мойки нержавеющие декор', '', '', '', 0, 0);
INSERT INTO `cms_categories` VALUES (221, 'smesitile', 'COSTA', '', '', '', 20, 0);
INSERT INTO `cms_categories` VALUES (5, 'longran', 'Мойки гранитные', '', '', '', 0, 0);
INSERT INTO `cms_categories` VALUES (6, 'longran', 'Мойки нержавеющие', '', '', '', 0, 0);
INSERT INTO `cms_categories` VALUES (7, 'pages', 'Материалы', '', '', '', 0, 0);
INSERT INTO `cms_categories` VALUES (9, 'teka', 'Мойки гранитные', '', '', '', 0, 0);
INSERT INTO `cms_categories` VALUES (14, 'schock', 'Гранитные', '', '', '', 0, 0);
INSERT INTO `cms_categories` VALUES (16, 'smesitile', 'Смесители Atoll', '', '', '', 0, 0);
INSERT INTO `cms_categories` VALUES (18, 'smesitile', 'Смесители HANSGROHE', '', '', '', 0, 0);
INSERT INTO `cms_categories` VALUES (20, 'smesitile', 'Смесители GROHE', '', '', '', 0, 0);
INSERT INTO `cms_categories` VALUES (21, 'blanco', 'Смесители BLANCO', '', '', '', 0, 0);
INSERT INTO `cms_categories` VALUES (22, 'schock', 'Смесители SCHOCK', '', '', '', 0, 0);
INSERT INTO `cms_categories` VALUES (201, 'smesitile', 'LINEARE ', '', '', '', 20, 0);
INSERT INTO `cms_categories` VALUES (35, 'longran', 'Смесители Longran', '', '', '', 0, 0);
INSERT INTO `cms_categories` VALUES (28, 'accessories', 'HAILO', '', '', '', 0, 0);
INSERT INTO `cms_categories` VALUES (191, 'smesitile', 'EUROSMART', '', '', '', 20, 0);
INSERT INTO `cms_categories` VALUES (58, 'accessories', 'Системы сортировки отходов BLANCO', '', '', '', 0, 0);
INSERT INTO `cms_categories` VALUES (78, 'shop', 'Аксессуары 2', '', '', '', 0, 0);
INSERT INTO `cms_categories` VALUES (79, 'shop', 'Выдвижные розетки EVOline', '', '', '', 78, 0);
INSERT INTO `cms_categories` VALUES (91, 'teka', 'Мойки нержавейка', '', '', '', 0, 0);
INSERT INTO `cms_categories` VALUES (231, 'smesitile', 'GROHTHERM', '', '', '', 20, 0);
INSERT INTO `cms_categories` VALUES (211, 'smesitile', 'MINTA', '', '', '', 20, 0);
INSERT INTO `cms_categories` VALUES (141, 'smesitile', 'CHIARA', '', '', '', 20, 0);
INSERT INTO `cms_categories` VALUES (151, 'smesitile', 'CONCETTO', '', '', '', 20, 0);
INSERT INTO `cms_categories` VALUES (161, 'smesitile', 'ARIA', '', '', '', 20, 0);
INSERT INTO `cms_categories` VALUES (171, 'smesitile', 'EURODISC', '', '', '', 20, 0);
INSERT INTO `cms_categories` VALUES (181, 'smesitile', 'EUROPLUS', '', '', '', 20, 0);
INSERT INTO `cms_categories` VALUES (251, 'smesitile', 'ТЕРМОСТАТЫ', '', '', '', 18, 1);
INSERT INTO `cms_categories` VALUES (261, 'smesitile', 'Metropol E', '', '', '', 18, 2);
INSERT INTO `cms_categories` VALUES (271, 'smesitile', 'TALIS', '', '', '', 18, 3);
INSERT INTO `cms_categories` VALUES (281, 'aquasanita', 'Кухонные мойки', '', '', '', 0, 0);
INSERT INTO `cms_categories` VALUES (291, 'aquasanita', 'Гранитные смесители', '', '', '', 0, 0);
INSERT INTO `cms_categories` VALUES (301, 'smesitile', 'RAINDANCE', '', '', '', 18, 4);
INSERT INTO `cms_categories` VALUES (311, 'smesitile', 'CROMETTA', '', '', '', 18, 5);
INSERT INTO `cms_categories` VALUES (321, 'smesitile', 'CROMA', '', '', '', 18, 6);
INSERT INTO `cms_categories` VALUES (341, 'smesitile', 'EUROSTYLE', '', '', '', 20, 1);
INSERT INTO `cms_categories` VALUES (351, 'smesitile', 'EUROEKO', '', '', '', 20, 2);
|
parentid отвечает за родителя | |
|
|
|
|
|
|
|
для: dirol
(25.03.2011 в 21:57)
| | Если я правильно все понял, блок вывода подкатегорий следует поместить в условие $cat == $sid
<?php
...
$cat=$_GET['cat'];
$result = $db->sql_query("SELECT id, modul, title, description, img, language, parentid FROM ".$prefix."_categories ORDER BY modul ASC");
while (list($sid, $modul, $title, $description, $img, $language, $parentid) = $db->sql_fetchrow($result)) {
if($parentid==0)$content .= "<li class=\"category-top\"><span class=\"top-span\"><a class=\"category-top\" href=\"?cat=$sid\">$title</a></span></li>\n";
if($cat == $sid)
{
$result = $db->sql_query("SELECT id, modul, title, description, img, language, parentid FROM ".$prefix."_categories WHERE parentid='$cat' ORDER BY modul ASC");
$content .= "<div>";
while (list($sid, $modul, $title, $description, $img, $language, $parentid) = $db->sql_fetchrow($result)) {
$title =($title);
$content .= "<a class=\"menu_right_sub\" href=\"#\">".($title)."</a>";
}
}
$content .= "</div>";
}
...
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(26.03.2011 в 19:56)
| | да спасибо так работает. подскажи пожалуйста как выводить еще под категории которые появляются имено под той категорией на которую нажали а не внизу всех категорий | |
|
|
|
|
|
|
|
для: dirol
(26.03.2011 в 20:20)
| | Оформите их в виде вложенного списка, а не в виде <div>-блока. | |
|
|
|
|
|
|
|
для: cheops
(26.03.2011 в 20:24)
| | подскажи пожалуйста как. можно без дивов можно с echo, заранее огромное спасибо за помощь | |
|
|
|
|
|
|
|
для: dirol
(26.03.2011 в 20:25)
| | Примерно так
<?php
...
$cat=$_GET['cat'];
$query = "SELECT id, modul, title, description, img, language, parentid
FROM ".$prefix."_categories ORDER BY modul ASC";
$result = $db->sql_query($query);
while (list($sid, $modul, $title, $description, $img, $language, $parentid) = $db->sql_fetchrow($result)) {
if($parentid==0) $content .= "<li class=\"category-top\"><span class=\"top-span\"><a class=\"category-top\" href=\"?cat=$sid\">$title</a></span></li>\n";
if($cat == $sid)
{
$query = "SELECT id, modul, title, description, img, language, parentid
FROM ".$prefix."_categories WHERE parentid='$cat' ORDER BY modul ASC";
$result = $db->sql_query($query);
$content .= "<li><ul>";
while (list($sid, $modul, $title, $description, $img, $language, $parentid) = $db->sql_fetchrow($result)) {
$title =($title);
$content .= "<li><a class=\"menu_right_sub\" href=\"#\">".($title)."</a></li>";
}
$content .= "</ul></li>";
}
}
...
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(26.03.2011 в 20:32)
| | не сработало под категории выводятся под всем списком | |
|
|
|
|
|
|
|
для: dirol
(26.03.2011 в 20:41)
| | Это уже нужно HTML-код обустраивать, чтобы позиции выведенные посреди списка не выносило за пределы этого списка. | |
|
|
|
|
|
|
|
для: cheops
(26.03.2011 в 20:44)
| | цепанул одну функцию
function categories_list($level, $path, $sel){
global $prefix, $db, $conf;
$out = array();
$cnt = 0;
$q = $db->sql_query("SELECT id, title from ".$prefix."_categories WHERE parentid='$path' ORDER BY title");
while ($row = $db->sql_fetchrow($q)){
$out[$cnt][0] = $row[0];
$out[$cnt][1] = $row[1];
$out[$cnt][2] = $level;
$cnt++;
}
return $out;
}
|
$categoryID=78; // по умолчанию для проверки
$out = categories_list(0, 0, $categoryID);
for ($i = 0; $i <=count($out); $i++) {
if ($categoryID == $out[$i][0]){
echo"<b><font color=brown>".$out[$i][1]."-".$out[$i][0]."</font></b><br>";
$result = $db->sql_query("SELECT id, title FROM ".$prefix."_categories WHERE parentid <>0 AND parentid='".$out[$i][0]."' ORDER BY title");
if ($db->sql_numrows($result) > 0) {
while (list($id, $title) = $db->sql_fetchrow($result)) {
echo"---<a href=\"index.php?categoryID=".$id."\">".$title."</a><br>";
}
}
}else{
echo"<a href=\"index.php?categoryID=".$out[$i][0]."\">".$out[$i][1]."</a><br>";
}
}
|
все работает как надо. хотел бы мнение услышать, стоит так использовать код? | |
|
|
|
|
|
|
|
для: dirol
(26.03.2011 в 23:14)
| | Если все работает как надо, то конечно стоит :) | |
|
|
|
|
|
|
|
для: cheops
(26.03.2011 в 23:45)
| | спасибо еще раз за помощь. не раз уже помогал. большое тебе спасибо | |
|
|
|
|