Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите составить запрос

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
gaga
Отправлено: 14 Июня, 2011 - 23:55:33
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




Добрый всем вечер.

Большая просьба помочь намекнуть

Дана таблица

id_cat -индетификатор каталога
title-название
pid- идентификатор родителя данного каталога.

(id_cat соединен с pid)
1 вопрос: можно ли в данном случае , только используя эти столбцы вывести каталоги/подкаталоги без рекурсии в php(а то apache ругает), если да ,то как.

2 вопрос: как mysql-запросом вывести каталог и его подкаталогов, включая потомков подкаталогов.



Мне нужны примеры работы запросов с такими таблицами....Нет опыта-((((

Просьба откликнуться.... Растерялся
 
 Top
Давит
Отправлено: 15 Июня, 2011 - 00:22:40
Post Id



Частый гость


Покинул форум
Сообщений всего: 147
Дата рег-ции: Май 2011  


Помог: 2 раз(а)




PHP:
скопировать код в буфер обмена
  1. $query = mysql_query("SELECT id_cat, title, pid FROM Дана");
  2. $rez = mysql_fetch_array($query);
  3.  
  4. echo "<ol>";
  5. while($rez = mysql_fetch_array($query)){
  6.         echo "<li>".$rez['id_cat']." / ".$rez['pid']."</li>";
  7.         }
 
 Top
OrmaJever
Отправлено: 15 Июня, 2011 - 00:22:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




gaga пишет:
без рекурсии в php(а то apache ругает)

а может сразу без php?
Как пробовали? Если верно написать ругать он не будет


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
gaga
Отправлено: 15 Июня, 2011 - 00:47:50
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




Я делала так, скачала пример, врать не буду...
Ошибку не нашла, для интереса привожу код. Очень интересно, че он так ругается....
Выводит экую вереницу по диагонали
корневой каталог
корневой каталог
корневой каталог
и т.д.
с сайта http://www[dot]internet-technologies[dot][dot][dot]rticle_1281[dot]html
Так как делала не сама, врать не буду.-) Выдает ошибку apache прекращает работу.-(

PHP:
скопировать код в буфер обмена
  1.  
  2. function ShowTree($ParentID, $lvl) {
  3. db_connect();//соединение с бд, отдельная функция
  4.  
  5. global $lvl;
  6. $lvl++;
  7.  
  8. $sSQL="SELECT id,title,pid FROM catalogue WHERE pid=".$ParentID." ORDER BY title";
  9. $result=mysql_query($sSQL);
  10.  
  11. if (mysql_num_rows($result) > 0) {
  12. echo("<UL>\n");
  13. while ( $row = mysql_fetch_array($result) ) {
  14. $ID1 = $row["id"];
  15. echo("<LI>\n");
  16. echo("<A HREF=\""."?ID=".$ID1."\">".$row["title"]."</A>"." \n");
  17. ShowTree($ID1, $lvl);
  18. $lvl--;
  19. }
  20. echo("</UL>\n");
  21. }
  22.  
  23. }
  24.  
  25. ShowTree(-1, -1);
  26.  
  27.  

так как корневой каталог с -1.(id=pid=-1)
Делала также настройки в php.ini: думала дело в настройке рекурсии
pcre.recursion_limit=100000
max_execution_time = 6000 ; Maximum execution time of each script, in seconds
max_input_time = 6000 ; Maximum amount of time each script may spend parsing
memory_limit = 150M ; Maximum amount of memory a script may consume (128MB)

Все безрезультатьно... может не там копаюсь....

Просьба, обсудить....
(Добавление)
Давит пишет:
PHP:
скопировать код в буфер обмена
  1. $query = mysql_query("SELECT id_cat, title, pid FROM Дана");
  2. $rez = mysql_fetch_array($query);
  3.  
  4. echo "<ol>";
  5. while($rez = mysql_fetch_array($query)){
  6.         echo "<li>".$rez['id_cat']." / ".$rez['pid']."</li>";
  7.         }


А как сделать в случае
каталог
подкаталог
подкаталог подкаталога.


Вопрос, то есть можно ли в данном случае обойтись без рекурсии, используя только три поля таблицы(id,pid,title)? Если да, то каким способом.

Просьба помочь....
 
 Top
Давит
Отправлено: 15 Июня, 2011 - 09:14:04
Post Id



Частый гость


Покинул форум
Сообщений всего: 147
Дата рег-ции: Май 2011  


Помог: 2 раз(а)




я не понимаю что у вас в базе поэтому не могу помоч

вот пример работа с каталогами,

PHP:
скопировать код в буфер обмена
  1. function dirs($dir, $tab) {
  2.           $d = opendir($dir);
  3.             while( $name = readdir($d) ){
  4.               if( $name == "." || $name == ".." )
  5.                  continue;  //иначе попадем бесконечной рекурсии
  6.                     if( is_dir($name) ){
  7.                        echo"<b>".$tab."[ $name ]</b></br>";
  8.                        $tab .="-";
  9.                        dirs($dir."/$name",$tab);
  10.                     }else
  11.                         echo"$tab$name<br>";
  12.             }
  13.            closedir($dir);
  14.         }

(Отредактировано автором: 15 Июня, 2011 - 09:17:20)

 
 Top
gaga
Отправлено: 16 Июня, 2011 - 08:51:07
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




У меня не каталоги операционной системы,

а каталоги подкаталоги нна сайте...(инфа хранится в бд)
Нужно чтоб отобразилось на сайте,
Категория1
Подкатегория1.1
Подкатегория1.1.2
Подкатегория 1.1.
Категория 2

И я не знаю что делать Прекращает работу Apache....Пожалуйста помогите.
 
 Top
EuGen Администратор
Отправлено: 16 Июня, 2011 - 09:26:24
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)






-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB