|
| 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
| |
|
|