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

Форум MySQL

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

 

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

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

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

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

id | name | parent_id

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

если есть

1 | papka | 0
2 | podpapka | 1

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

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

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

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

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

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

   
 
 автор: 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   (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'] != 0subdirbd2($cat['id_parent'],$dir); 

        } 
        return 
$dir



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

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

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

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

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

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

   
Rambler's Top100
вверх

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