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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Формирование URL

Сообщения:  [1-7] 

 
 автор: P@Sol   (13.10.2006 в 13:11)   письмо автору
 
   для: cheops   (13.10.2006 в 12:46)
 

какая глупая ошибка...а я этого ответа неделю ждал.....очередное Вам спасибо!

   
 
 автор: cheops   (13.10.2006 в 12:46)   письмо автору
 
   для: P@Sol   (13.10.2006 в 12:07)
 

Следует исправить строку
<?php
   
if ($cat['id_parent'] != 0) subdirbd2($cat['id_parent'],$dir);
?>

следующим образом
<?php
   
if ($cat['id_parent'] != 0) $dir = subdirbd2($cat['id_parent'],$dir);
?>

   
 
 автор: P@Sol   (13.10.2006 в 12:07)   письмо автору
 
   для: cheops   (12.10.2006 в 15:55)
 

работает, а почему не работает моя функция?
вот моя функция:

<? 
function subdirbd2($id_catalog,$dir) 
{ 
        
$query = "SELECT * FROM libcat 
                  WHERE id_catalog = '
$id_catalog'"; 

        
$ctg = mysql_query($query); 
        if(
mysql_num_rows($ctg)>0) 
        { 
                
$cat = mysql_fetch_array($ctg); 

                
$dir = $cat['name']."/".$dir; 
               
//  echo $dir; 

                 
if ($cat['id_parent'] != 0) subdirbd2($cat['id_parent'],$dir); 

        } 
        return 
$dir; 
} 


она возвращает не то значение, хотя если раскоментировать строку echo $dir; то на экране будет выведена нужная мне строка

   
 
 автор: cheops   (12.10.2006 в 15:55)   письмо автору
 
   для: P@Sol   (12.10.2006 в 14:50)
 

Здесь обычно прибегают к рекурсивному списку
<?php 
  
function recurse($id) 
  { 
    global 
$arr;
    
$query = "SELECT * FROM tbl WHERE parent_id = $id"; 
    
$tbl = mysql_query(); 
    if(!
$tbl) exit("Ошибка синтаксиса ".mysql_error()); 
    if(
mysql_num_rows($tbl) > 0) 
    { 
      while(
$table = mysql_fetch_array($tbl)) 
      { 
        
$arr[] = $table['name']; 
        
recurse($table['id'], $count); 
      } 
    } 
  } 
  unset(
$arr);
  
recurse(1); 
  echo 
"/".implode("/",$arr)."/";
?> 

   
 
 автор: P@Sol   (12.10.2006 в 15:29)   письмо автору
 
   для: slonik   (12.10.2006 в 15:25)
 

имеем страницу: http://какой-то_путь?id=2

надо составить функцию, которая вернет строку "/papka/podpapka/", чтобы на этой странице уже что то можно было сделать с этой папкой (удалить, записать в нее файл, переименовать и т.д.)

   
 
 автор: slonik   (12.10.2006 в 15:25)   письмо автору
 
   для: P@Sol   (12.10.2006 в 14:50)
 

Лично я ничего не понял!

   
 
 автор: P@Sol   (12.10.2006 в 14:50)   письмо автору
 
 

нужно составить путь к папке
в бд

id | name | parent_id

известно id, нужно составить путь до этой папке

если есть

1 | papka | 0
2 | podpapka | 1

то вывести должно "/papka/podpapka/"

   

Сообщения:  [1-7] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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