|
|
|
| Привет. Пытаюсь самотужки написать каталог продукции. Вот структура бд
CREATE TABLE catal_cat (
idcat int(11) NOT NULL auto_increment,
pidcat int(11) default '0',
name varchar(255) default NULL,
description text,
picture varchar(30) default NULL,
PRIMARY KEY (idcat)
) ENGINE=MyISAM;
CREATE TABLE catal_prod (
idprod int(11) NOT NULL auto_increment,
idcat int(11) default NULL,
name varchar(255) default NULL,
description text,
price float default NULL,
picture varchar(30) default NULL,
s_picture varchar(30) default NULL,
b_picture varchar(30) default NULL,
sklad int(1) default NULL,
d_pole1 text,
d_pole2 varchar(255) default NULL,
d_pole3 varchar(255) default NULL,
PRIMARY KEY (idprod)
) ENGINE=MyISAM;
|
я вывожу категории в которых pidcat равен нулю (т.е. которые не являются подкатегориями)!!!
ВОПРОС: как мне вывести подкатегории под нужную мне категорию при клике на линк
т.е. при клике на нужную категорию, что бы под ней вывелись все подкатегории...
вроде ясно пояснил.
спасибо | |
|
|
|
|
|
|
|
для: virtus
(06.01.2006 в 15:12)
| | Для этого через ссылку передайте idcat корневого каталога
<a href=index.php?idcat=1>dfjd;lfj;ds</a>
|
И проверяйте, если файлу передан параметр $_GET['idcat'], то выводите подкатегории при помощи запроса
SELECT * FROM catal_cat WHERE pidcat = $_GET['idcat']
|
Только предварительно проверьте, чтобы $_GET['idcat'] было целочисленным
<?php
if(!preg_match("|^[\d]+$|",$_GET['idcat']) && !empty($_GET['idcat'])) exit("Недопустимый параметр");
?>
|
иначе будет возможна SQL-инъекция. | |
|
|
|
|
|
|
|
для: cheops
(06.01.2006 в 15:26)
| | да я знаю, Но мне нужно, ..вот пример как есть
<?php
$result = mysql_query("SELECT * FROM $tblName_cat WHERE pidcat ='0' ORDER BY name DESC");
if ($result)
{
while($catalog = mysql_fetch_array($result))
{
$pos = strpos(substr($catalog['description'],$numchar), " ");
// Если новость длинная, то выводим троеточие...
if(strlen($catalog['description'])>$numchar) $srttmpend = " >...";
else $strtmpend = "";
// Выводим анонс
$telo = substr($catalog['description'], 0, $numchar+$pos).$srttmpend;
echo "<tr><td align=right><a title=\"$telo\" class=catalog href='".$pathlg."/catalog".$catalog['idcat']."'>".$catalog['name']."</a>
</td></tr>";
}
}
else "Ошибка";
?>
|
на выводе:
категория1
категория2
категория3
а нужно
категория1
-подкатегория1
-подкатегория2
----под-подкатегория1
категория2
категория3
-подкатегория1
И так далее
....
спасибо. | |
|
|
|
|
|
|
|
для: virtus
(06.01.2006 в 16:42)
| | Если подкатегории вложенные и число вложений заранее не известно - нужно реализовывать меню через рекурсивную функцию. | |
|
|
|
|
|
|
|
для: cheops
(06.01.2006 в 16:51)
| | а где ее поглядеть в примерах можно? | |
|
|
|
|
|
|
|
для: virtus
(06.01.2006 в 17:01)
| | В электронном виде сейчас вряд ли вспомню, но такая система описывается в PHP 5. Практика создания Web-сайтов. | |
|
|
|