Показать сообщение отдельно
Старый 04.10.2005, 20:16     # 8
Al-x
Junior Member
 
Регистрация: 30.03.2003
Адрес: СПб
Сообщения: 162

Al-x МолодецAl-x МолодецAl-x Молодец
Держи функцию, которую я когда-то писал для этих целей:
$link - соед. с базой
$sqlTblCat - таблица, хранящая меню
my_mysql_query() - я ей ошибки обрабатывал
$href передаётся для формирования ссылки в меню
Хотя это всё не важно, думаю можно и так разобраться
PHP код:
function printTree($pid,$href) {
    global 
$link;
    global 
$sqlTblCat;

    
$ret='';
    
$query="SELECT * FROM $sqlTblCat WHERE pid='$pid'  ORDER BY descName";
    
$result my_mysql_query($query$link) or die(mysql_die(__FILE__.': '.__LINE__.' in '.__FUNCTION__,false,true,true));

    if (
mysql_num_rows($result) > 0)
    {
        
$ret.=("<UL>\n");
        while ( 
$row mysql_fetch_array($result) ) {
            
$ret.=("<LI>\n");
            
$ret.="<A HREF='$href"."?id=".$row['id']."'>".htmlspecialchars(stripslashes($row["descName"]), ENT_QUOTES)."</A><br>\n";
            
$ret.="</li>\n";
            
$ret.=printTree($row['id'],$href);
        }
        
$ret.=("</UL>\n");
    }
    return 
$ret;

Вызов:
PHP код:
printTree(0,$HTTP_SERVER_VARS['PHP_SELF']) 
База:
Код:
CREATE TABLE `cathegories` (
  `id` int(11) NOT NULL auto_increment,
  `pid` int(11) NOT NULL default '0',
  `descName` varchar(255) NOT NULL default ''
)
__________________
640Kbytes should be enough for everything! (c) Bill Gates, 1981.
Все "спасибо" в репутацию

Последний раз редактировалось Al-x; 04.10.2005 в 20:18.
Al-x вне форума