Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.08.2012, 15:23   #21
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Predator199
А может всетки расскажешь смысл задачи?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.08.2012, 15:26   #22
Predator199
Форумчанин
 
Аватар для Predator199
 
Регистрация: 26.01.2012
Сообщений: 648
По умолчанию

Есть два поля, в них числа.
Ка можно вывести результат запроса. Когда будит одно из полей содержать 0.
К примеру:
PHP код:
id nomer
1   1
2   0
3   0
4   3
5   4
6   5
7   5
8   5 
Прописываю запрос с "выборкой" по id.
Есть 7, через php находит запись с id 7, смотрит по полю nomer. У nomer имеется 5, дальше находит запись с id 5. У записи по id 5, поле nomer = 3 и тд. Доходим до того когда id=3, а nomer=0.
Predator199 вне форума Ответить с цитированием
Старый 19.08.2012, 15:51   #23
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

PHP код:
function tree($uid$conn) {
if(
$uid==0) return;

$sql "SELECT * FROM category WHERE id=$uid";
$a mysql_query($sql$conn);

$i=$row["nomer"];
 
while(
$row mysql_fetch_array($a)) { 
 echo 
$row["id"]
}
tree($i$conn);
 

Вот такто както... Грубовато конечно и я точно не помню РНР но все же надеюсь идею донес.

P.S. Вообще современные СУБД уже имеют возможность описывать одним запросом рекурсивный проход по базе. Почитай, возможно и твоя СУБД тоже умеет делать такое.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.08.2012, 16:02   #24
Predator199
Форумчанин
 
Аватар для Predator199
 
Регистрация: 26.01.2012
Сообщений: 648
По умолчанию

Спс....... У меня так и не получилось того чего хотел.
У меня получается своим способом.

PHP код:
$uid 556

$sql "SELECT * FROM category WHERE id=$uid LIMIT 1";
$a mysql_query($sql);
while(
$row mysql_fetch_array($a)) {
$ff$row["parentid"];
$sq "SELECT * FROM category WHERE id=$ff LIMIT 1";
$b mysql_query($sq);
while(
$row mysql_fetch_array($b)) {
echo 
$row["parentid"];
 }
 }

 
$sq "SELECT * FROM category WHERE id=$uid LIMIT 1";
$b mysql_query($sq);
while(
$row mysql_fetch_array($b)) {
echo 
$row["parentid"];
 } 
Можно ли как нибудь выставить условие( отделить 1-ые 2 запроса от 3). Если в 1-ые 2 запроса дают результат 0, тогда будит выполнятся 3 запрос?

Последний раз редактировалось Predator199; 19.08.2012 в 17:03.
Predator199 вне форума Ответить с цитированием
Старый 19.08.2012, 17:13   #25
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
$sql = "SELECT * FROM category WHERE id=$uid LIMIT 1";
$a = mysql_query($sql);

$ok=0;

while($row = mysql_fetch_array($a)) {
...
while($row = mysql_fetch_array($b)) {
 echo $row["parentid"];
 $ok=1;
}
}
if($ok==1) return;
Хотя по-моему это как мавериком по мухам бить.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
рекурсии fre Паскаль, Turbo Pascal, PascalABC.NET 2 03.04.2012 09:59
Рекурсии RAMA Паскаль, Turbo Pascal, PascalABC.NET 6 18.10.2009 13:56
Рекурсии Logan Паскаль, Turbo Pascal, PascalABC.NET 1 13.05.2008 08:52
ПОМОГИТЕ! ОЧЕНЬ ВАЖНО! Задача на использование рекурсии stscolt Помощь студентам 1 21.04.2008 22:37