Article View: pl.comp.lang.php
Article #1795Re: rekurencja
From: Metempsychoza
Date: Thu, 30 Aug 2001 16:32
Date: Thu, 30 Aug 2001 16:32
49 lines
3130 bytes
3130 bytes
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
Technical Details
Message-ID:
<9mlq5s$b4b$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-mailReferences:
<9mld04$iq0$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: "Metempsychoza" <metempsychoza@wp.pl> Newsgroups: pl.comp.lang.php Subject: Re: rekurencja Date: Thu, 30 Aug 2001 18:32:15 +0200 Organization: tp.internet - http://www.tpi.pl/ Lines: 51 Message-ID: <9mlq5s$b4b$1@news2.tpi.pl> References: <9mld04$iq0$1@news2.tpi.pl> NNTP-Posting-Host: 217.97.128.82 X-Trace: news2.tpi.pl 999189500 11403 217.97.128.82 (30 Aug 2001 16:38:20 GMT) X-Complaints-To: usenet@tpi.pl NNTP-Posting-Date: Thu, 30 Aug 2001 16:38:20 +0000 (UTC) X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 X-Priority: 3 X-Newsreader: Microsoft Outlook Express 5.50.4133.2400 X-MSMail-Priority: Normal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit