| |
|
|
| | Продолжение созданной мной час назад темы - http://softtime.ru/forum/read.php?id_forum=1&id_theme=33219&page=1
Копался в доках по пхп) и изобрел велосипед) вот его код:
<?php
function create_rubrics_select( &$output,$parent_id = 0,$level = 0 )
{
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( 1 );
if ( mysql_num_rows( $query ) == 0 ) 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 в 18:50)
| | | . | |
| |
|
|
| |
|
|
| |
для: 1999
(24.02.2007 в 18:50)
| | | 1) да.
2) как проверяете? | |
| |
|
|
| |
|
|
| |
для: cheops
(25.02.2007 в 01:08)
| | | проверяю добавлением счетчика в цикл (тут я его убрал). счетчик всегда накручивал только 0 или 1 | |
| |
|
|
| |
|
|
| |
для: 1999
(25.02.2007 в 01:37)
| | | была еще такая проблема при использовании ссылок - просто не грузилась страница( | |
| |
|
|
| |
|
|
| |
для: 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 .= " ";
$sql = "SELECT * FROM ".$db_options['table_prefix']."rubrics WHERE parent_id = '".$parent_id."'";
$query = mysql_query( $sql ) or dc_error( 1 );
if ( mysql_num_rows( $query ) == 0 ) 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) - чтобы в функции не создавалась его копия. это нормально? | |
| |
|
|