🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.php
Article #1796

Re: rekurencja

#1796
From: MeHundo
Date: Thu, 30 Aug 2001 17:02
60 lines
3531 bytes
Metempsychoza wrote:

> 
> Uzytkownik "MeHundo" <yanquie@bigfoot.com> napisal w wiadomosci
> news:9mld04$iq0$1@news2.tpi.pl...
>> nie dziala mi taka procedurka wywolujaca sie rekurencyjnie. dotarlem w
>> manualu do tematu recursion ;]
>> jest tam wskazane uzywanie zmiennych static jesli maja przetrwac
>> rekurencyjne wywolanie funckji, ale nie za bardzo wiem jak ja tutaj
>> zastosowac:
>>
>>         function resolve_post($post_id, $re_level){
>>             static $qresult;
>>                 include("db_vars.php");
>>                 $_mysql=mysql_pconnect($host,$username,$password) or die
>>                         ("brak polonczenia");
>>                 mysql_select_db($db);
>>                 $query="select id,subject,visitor_id,
>>                         DATE_FORMAT(posted,'%d-%m-%Y') as fdate
>>                         from forum where id_next=$post_id
>>                         order by posted desc";
>>                 //echo $query . " " . $post_id . " " . $re_level .
>>                 "<BR>"; $qresult=mysql_query($query);
>>                 echo mysql_num_rows($qresult) . "<BR>";
>>                 while($row=mysql_fetch_array($qresult)){
>>                         echo str_repeat("+",$re_level) . "(" .
>> $row["fdate"] . ") " .
>>                                 $row["visitor_id"] . " -=- " .
>> $row[subject] . "<BR>";
>>                         resolve_post($row["id"],$re_level+1);
>>                 }
>> //              $mysql_free_result($qresult);
>>         }
>>         resolve_post(0,0);
>> ?>
> 
> zauwazylem tu kilka bledow:
> 1) po co za kazdym wywolaniem funkcji otwierasz nowe polaczenie? fakt, ze
> dla interpretera to wszystko jedno (i tak otwiera tylko jedno polaczenie),
> ale przejrzysciej bedzie jak raz polaczysz sie z baza, a pozniej juz tylko
> przechowujesz uchwyt do polaczenia
> 2) static $qresult - zbedne, skoro za kazdym razem otwierasz polaczenie
> 3) przez caly czas pobierasz jeden rekord o tym samym id
> 4) po co $re_level jak argument funkcji? przeciez nic z tym nie robisz,
> daj global $re_level i tylko inkrementuj
> 5) przeczytaj
> http://hotwired.lycos.com/webmonkey/99/31/index3a.html?tw=programming -
> tutorial rozwiazujacy problem z ktorym sie borykasz
> 
> --
> metempsychoza(at)wp.pl

wielkie dzieki, naprowadziles mnie na trop :)
faktycznie najwiekszym bledem bylo wprowadzenie do procedury elementu 
nawiazywania polaczenia, co chyba restartowalo zrodlo rekordow.
co do argumentu $re_level to jest on potrzebny bo przekazuje 'wysokosc 
galezi drzewa'. w kazdym razie funkcja juz dziala, a do strony niestety nie 
moglem sie dostac.

thx pozdrawiam
Technical Details
Message-ID: <9mlrfs$ggm$1@news2.tpi.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!news.astercity.net!newsfeed.tpinternet.pl!news.tpi.pl!not-for-mail
References: <9mld04$iq0$1@news2.tpi.pl> <9mlq5s$b4b$1@news2.tpi.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!news.astercity.net!newsfeed.tpinternet.pl!news.tpi.pl!not-for-mail
From: MeHundo <yanquie@bigfoot.com>
Newsgroups: pl.comp.lang.php
Subject: Re: rekurencja
Date: Thu, 30 Aug 2001 19:02:40 +0200
Organization: tp.internet - http://www.tpi.pl/
Lines: 60
Message-ID: <9mlrfs$ggm$1@news2.tpi.pl>
References: <9mld04$iq0$1@news2.tpi.pl> <9mlq5s$b4b$1@news2.tpi.pl>
Reply-To: yanquie@bigfoot.com
NNTP-Posting-Host: pi161.wroclaw.sdi.tpnet.pl
Mime-Version: 1.0
X-Trace: news2.tpi.pl 999190845 16918 217.96.152.161 (30 Aug 2001 17:00:45 GMT)
X-Complaints-To: usenet@tpi.pl
NNTP-Posting-Date: Thu, 30 Aug 2001 17:00:45 +0000 (UTC)
User-Agent: KNode/0.6.1
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit