login  Naam:   Wachtwoord: 
Registreer je!
 Forum

recursie probleempje

Offline cloudstrife - 29/01/2008 14:58
Avatar van cloudstrifePHP beginner Ik ben bezig met het maken van een delete functie in mijn categorie overzicht. Als men bv een hoofdcategorie verwijderd worden automatisch alle subcategorieën en hun producten verwijderd. Ik probeer dit te doen aan de hand van recursie. Maar krijg de een memory limit fout. Weet iemand wat ik fout doe?

  1. private function delete($catid)
  2. {
  3. $query = mysql_query("SELECT catID, subcatID FROM categorie WHERE subcatID='$catid'");
  4. if(mysql_num_rows($query)==0)
  5. {
  6. mysql_query("DELETE FROM categorie WHERE catID='$catid'");
  7. mysql_query("DELETE FROM product WHERE catID='$catid'");
  8. }else{
  9. if(mysql_num_rows($query) > 0)
  10. {
  11. while($data = mysql_fetch_object($query))
  12. {
  13. $this->delete($data->subcatID);
  14. }
  15. }
  16. }
  17. }

5 antwoorden

Gesponsorde links
Offline vinTage - 29/01/2008 15:25
Avatar van vinTage Nieuw lid Ik weet niet zeker of dit er iets mee te maken heeft, maar die if na de else, is die niet zowat nutteloos ?
Offline cloudstrife - 29/01/2008 15:26 (laatste wijziging 29/01/2008 15:27)
Avatar van cloudstrife PHP beginner Mja die is inderdaad overbodig.

Maar de fout blijft... Kan php overigens goed overweg met recursie?
Offline vinTage - 29/01/2008 15:30
Avatar van vinTage Nieuw lid Geen idee wat recursie is 
Offline Stijn - 29/01/2008 15:48
Avatar van Stijn PHP expert Iedere computertaal kan recursie aan. Je moet gewoon snappen wat recursie is. Je hebt het triviaal geval en je hebt het recursief geval.

Een voorbeeld is een macht functie. x^k wil zeggen dat je het getal x k keer vermenigvuldigd met x. Het triviaal geval is wanneer k gelijk is aan 0 dat het 1 teruggeeft.

  1. function macht( $x , $k )
  2. {
  3.  
  4. if( $k == 0 ) return 1;
  5. else {
  6. return $x * macht($x , $k-1);
  7. }
  8.  
  9. }
  10.  
  11. echo macht(2,3); //8


Pas nu die theorie toe op jou probleem . Let op dat recursie niet altijd optimaal is (algortime berekeningen adhv aantal functie oproepen).
Offline cloudstrife - 29/01/2008 15:52
Avatar van cloudstrife PHP beginner
Citaat:
Pas nu die theorie toe op jou probleem . Let op dat recursie niet altijd optimaal is (algortime berekeningen adhv aantal functie oproepen).


Euhm, ik denk die theorie in mijn voorbeeld toegepast is hoor... Alleen return ik geen waarde wat ook niet nodig is.

offtopic: er zijn wel degelijk programmeertalen die geen recursie ondersteunen.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.183s