Форум сетевых администраторов
Показаны 1 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- PHP (http://netadmin.ws/forum/forumdisplay.php?forumid=6)
-- Рекурсия. (http://netadmin.ws/forum/showthread.php?threadid=8613)


Помещено zyablik 28-04-2004 в 12:41:

Рекурсия.

чета неправильно работает.. лишний раз цикл пробегается.. поправьте плиз!

#
# Структура таблицы `category`
#

CREATE TABLE `category` (
`ElementID` int(3) unsigned NOT NULL auto_increment,
`ParentID` int(3) unsigned default '0',
`ElementName` varchar(150) default NULL,
PRIMARY KEY (`ElementID`)
) TYPE=MyISAM AUTO_INCREMENT=14 ;

#
# Дамп данных таблицы `category`
#

INSERT INTO `category` VALUES (1, 0, 'Машины');
INSERT INTO `category` VALUES (2, 1, 'Лада');
INSERT INTO `category` VALUES (3, 2, 'модель 12.01');
INSERT INTO `category` VALUES (4, 1, 'Ваз');
INSERT INTO `category` VALUES (5, 4, '21,06');
INSERT INTO `category` VALUES (6, 4, '21,7');
INSERT INTO `category` VALUES (7, 0, 'Стиралки');
INSERT INTO `category` VALUES (8, 7, 'АЕГ');
INSERT INTO `category` VALUES (9, 8, 'Мега стиралка');
INSERT INTO `category` VALUES (10, 7, 'Бош');



PHP:


<?
function getchildren($id) {
    
$q = "SELECT * FROM category WHERE ParentID = $id";
    echo 
$q."<br>";
    
$q = mysql_query($q);
    if(
sizeOf(mysql_num_rows($q))>0){
        
$html .= "<ul>";
        while(
$row = mysql_fetch_array($q)) {
            
$html .= "<li>";
            
$html .=  $row[ElementName] ;
            
$html .=  "</li>";
//            $qw = "SELECT * FROM category WHERE ParentID = $row[ElementID]";
//            echo $qw."<br>";
            
$qw = mysql_num_rows($q);
            if(
sizeOf($qw) > 0) {
                
$html .= getchildren($row[ElementID]);
            }
        }
        
$html .= "</ul>";
    }
    return 
$html;
}

echo 
getchildren(0);
?>




мля.. вот я слепой... ошибочка то банальная.. из серии масло маслянное.. обратите внимание на строчку

PHP:
<? if(sizeOf(mysql_num_rows($q))>0) ?>{


и сразу поймете..


Формат времени GMT. Текущее время 12:44.
Показаны 1 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.