Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: ссылки и рекурсия
 
 автор: 1999   (24.02.2007 в 18:50)   письмо автору
 
 

Продолжение созданной мной час назад темы - http://softtime.ru/forum/read.php?id_forum=1&id_theme=33219&page=1

Копался в доках по пхп) и изобрел велосипед) вот его код:

<?php
function create_rubrics_select( &$output,$parent_id 0,$level )
{
    global 
$db_options;
    
$tpl read_template"admin_rubrics_parent" );

    
$sql "SELECT * FROM ".$db_options['table_prefix']."rubrics WHERE parent_id = '".$parent_id."'";
    
$query mysql_query$sql ) or dc_error);
    if ( 
mysql_num_rows$query ) == ) return;
    
$nu_index count$output );

    while ( 
$row mysql_fetch_assoc$query ) )
    {
        
$output[$nu_index]['value'] = $row['id'];
        
$output[$nu_index]['text'] = $row['name_rus'];

        
$nu_level $level 1;
        
create_rubrics_select$output,$row['id'],$nu_level );
    }
}
?>


Вызывается он так:

<?
    $row
['parent_id'] = array();
    
create_rubrics_select$row['parent'] );
?>


Собственно вопросов 2:
1) правильно ли я передаю параметры (а вернее самый первый параметр) в рекурсию? (в цикле)
2) почему цикл никогда не выполняется более одного раза хотя должен?

Вопрос в теме по ссылке http://softtime.ru/forum/read.php?id_forum=1&id_theme=33219&page=1 не снимается)

   
 
 автор: 1999   (24.02.2007 в 21:01)   письмо автору
 
   для: 1999   (24.02.2007 в 18:50)
 

.

   
 
 автор: cheops   (25.02.2007 в 01:08)   письмо автору
 
   для: 1999   (24.02.2007 в 18:50)
 

1) да.
2) как проверяете?

   
 
 автор: 1999   (25.02.2007 в 01:37)   письмо автору
 
   для: cheops   (25.02.2007 в 01:08)
 

проверяю добавлением счетчика в цикл (тут я его убрал). счетчик всегда накручивал только 0 или 1

   
 
 автор: 1999   (25.02.2007 в 01:38)   письмо автору
 
   для: 1999   (25.02.2007 в 01:37)
 

была еще такая проблема при использовании ссылок - просто не грузилась страница(

   
 
 автор: 1999   (25.02.2007 в 12:02)   письмо автору
 
   для: 1999   (25.02.2007 в 01:38)
 

Вот такую штуковину написал с утра

<?
// $force_into - искать вложенные рубрики или нет
function create_rubrics_select( &$output,&$tpl,$parent_id 0,$level 0,$force_into true )
{
    global 
$db_options;

    
// Ставим пробелы для уровней
    
$nbsp "";
    for ( 
$i=0;$i<$level;$i++ )    $nbsp .= "&nbsp;&nbsp;";

    
$sql "SELECT * FROM ".$db_options['table_prefix']."rubrics WHERE parent_id = '".$parent_id."'";
    
$query mysql_query$sql ) or dc_error);
    if ( 
mysql_num_rows$query ) == ) return;
    
$nu_index count$output );

    while ( 
$row mysql_fetch_assoc$query ) )
    {
        
$array1 = array( "{ID}","{NAME}" );
        
$array2 = array( $row['id'],$nbsp.$row['name_rus'] );
        
$output .= str_replace$array1,$array2,$tpl );

        
$nu_level $level 1;
        if ( 
$force_into )
        {
            
create_rubrics_select$output,$tpl,$row['id'],$nu_level );
        }
    }
}
?>


вроде работает.. нет страшных ошибок?
передаю по ссылке то, над чем мне надо работать ($output) - переделал ее в строку, и шаблон ($tpl) - чтобы в функции не создавалась его копия. это нормально?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования