/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Rekursion
Fra : Martin Møller Bæk


Dato : 20-09-02 11:33

Understøtter PHP ikke rekursion?
Jeg har lavet en funktion, som
kalder sig selv rekursivt, men
det virker ikke.


--
Mvh.
- Martin Møller Bæk
- Stud. Polyt. (DTU)


 
 
Niels Andersen (20-09-2002)
Kommentar
Fra : Niels Andersen


Dato : 20-09-02 11:37

Martin Møller Bæk wrote in <3D8AF979.3010709@nospam.aflame.dk>:
> Understøtter PHP ikke rekursion?

Jo.

> Jeg har lavet en funktion, som
> kalder sig selv rekursivt, men
> det virker ikke.

Det er ikke PHP's skyld. :)

Prøv at vise os funktionen, så kan vi nok finde fejlen.

Hvis du vil være flink, så fjern al den kode der kan fjernes, mens problemet
stadig vises.

--
Mvh.

Niels Andersen
(la nels. anersyn.)

Martin Møller Bæk (20-09-2002)
Kommentar
Fra : Martin Møller Bæk


Dato : 20-09-02 11:50

Her kommer koden simplificeret.

Iøvrigt kan det skyldes, at jeg kalder
funktionen rekursivt før jeg har hentet
al data ud fra $result


function getAllSubmenus($id,$menu)
{
if($database = mysql_connect('localhost','brugernavn', '******'))
{
mysql_select_db('db',$database);
$sqlQuery = "SELECT id,submenu FROM submenus WHERE menu = ".$menu;
$result = mysql_query($sqlQuery,$database) or die("noget gik galt");
   
while($row = mysql_fetch_row($result))
{
print($row[1]."\n");
getAllSubmenus($id,$row[1]);
}
}
}



--
Mvh.
- Martin Møller Bæk
- Stud. Polyt. (DTU)


Jakob Kirkegaard (20-09-2002)
Kommentar
Fra : Jakob Kirkegaard


Dato : 20-09-02 11:56

Friday 20 September 2002 12:49, Martin Møller Bæk
<martin@nospam.aflame.dk> wrote:

> getAllSubmenus($id,$row[1]);

Prøv

return getAllSubmenus($id,$row[1]);

istedet.

--
mvh Jakob Kirkegaard
http://jakir.dk

Martin Møller Bæk (20-09-2002)
Kommentar
Fra : Martin Møller Bæk


Dato : 20-09-02 15:06

Jakob Kirkegaard wrote:

> Prøv
> return getAllSubmenus($id,$row[1]);
> istedet.
Det går ikke, da jeg printer noget ud
efter dette kald. Jeg har selv fundet
fejlen, som var, at jeg kaldte funktionen
med en forkert parameter, så der
opstod en sql fejl.

Men eller tak for hjælpen


--
Mvh.
- Martin Møller Bæk
- Stud. Polyt. (DTU)


Morten Winther (20-09-2002)
Kommentar
Fra : Morten Winther


Dato : 20-09-02 23:32


"Martin Møller Bæk" <martin@nospam.aflame.dk> wrote in message
news:3D8AFD3A.1030209@nospam.aflame.dk...
> Her kommer koden simplificeret.

> function getAllSubmenus($id,$menu)
> {
> if($database = mysql_connect('localhost','brugernavn', '******'))
> {
> mysql_select_db('db',$database);
> $sqlQuery = "SELECT id,submenu FROM submenus WHERE menu = ".$menu;
> $result = mysql_query($sqlQuery,$database) or die("noget gik galt");
>
> while($row = mysql_fetch_row($result))
> {
> print($row[1]."\n");
> getAllSubmenus($id,$row[1]);
> }
> }
> }
>

Det er ikke smart at åbne en forbindelse med mysql_connect, ej heller at
lave en mysql_query hver gang du kalder din funktion

Læs i stedet alle dine data ind i et array og brug så rekursion på den.

/ morten



Jakob Bock (20-09-2002)
Kommentar
Fra : Jakob Bock


Dato : 20-09-02 11:39

Martin Møller Bæk skrev:

> Understøtter PHP ikke rekursion?

Ja.

> Jeg har lavet en funktion, som
> kalder sig selv rekursivt, men
> det virker ikke.

Prøv af poste funktionen her, eller beskriv hvad det er, der ikke virker.


Venlig hilsen
Jakob


Peter Brodersen (20-09-2002)
Kommentar
Fra : Peter Brodersen


Dato : 20-09-02 11:46

On Fri, 20 Sep 2002 12:33:29 +0200, Martin Møller Bæk
<martin@nospam.aflame.dk> wrote:

>Understøtter PHP ikke rekursion?

Man kan sagtens lave en funktion, der kalder sig selv. Husk dog blot
at overføre variable eller global'e dem, da variable ikke som
udgangspunkt bliver ført videre ind i funktionskald.

Hvordan ser din kode ud?
--
- Peter Brodersen

Søg
Reklame
Statistik
Spørgsmål : 177503
Tips : 31968
Nyheder : 719565
Indlæg : 6408541
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste