[php] return in functie

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik heb de onderstaande recursieve functie geschreven die in een tabel een item opzoekt.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function getParent( $start_id, $target ){
    global $db;
    
    //search recursively from startingpoint ($start_id) till the first target ($target) is found
    $query_contactinfo = "select contacthistorie_id, contacthistorie_parent from contacthistorie where contacthistorie_id = ". $start_id;   
    $db->selectQuery( $query_contactinfo );
    if( $db->numRows() == 1 ){
        $record = $db->result;
        if( $record [0]["contacthistorie_parent"] == $target ){
            //target gevonden, return het id
            return $record[0]["contacthistorie_id"];
        }else{
            //zoek nog maal, maar nu met het zojuist gevonden id
            getParent( $record[0]["contacthistorie_parent"], $target );
        }
    }else{
        return 0;
    }
}


de functie werkt, maar het returnen van de het gevonden id werkt niet?
wie wat waar doe ik fout? mag ik op die plek in de functie geen waarde returnen?

[ Voor 10% gewijzigd door Verwijderd op 15-10-2003 11:47 ]


Acties:
  • 0 Henk 'm!

  • SWfreak
  • Registratie: Juni 2001
  • Niet online
Voordat dat ik nu die lap code ga doorlezen, vraag ik eerst maar eens wat er fout gaat, wat is de return-waarde/foutmelding...

Edit: Je roept getParent recursief aan, maar wat doe je met de return-waarde? :)

[ Voor 25% gewijzigd door SWfreak op 15-10-2003 11:50 ]


Acties:
  • 0 Henk 'm!

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
PHP:
1
2
3
4
        }else{ 
            //zoek nog maal, maar nu met het zojuist gevonden id 
            getParent( $record[0]["contacthistorie_parent"], $target ); 
        }
Hier gaat het fout. Bij de recursieve aanroep, returned je 'kind aanroep' wel z'n id, maar je doet er niets mee. Maak er maar eens van

PHP:
1
2
3
4
        }else{ 
            //zoek nog maal, maar nu met het zojuist gevonden id 
            return getParent( $record[0]["contacthistorie_parent"], $target ); 
        }

Beter nog zou het zijn, de returns even wat meer te kanaliseren tot 1 return statement, want zo is het een beetje een wirwar van exits van je functie :)

Acties:
  • 0 Henk 'm!

Verwijderd

return getParent op regel 14

offtopic:
hrm net te langzaam, nare zweedse toetsenborden ook...

[ Voor 60% gewijzigd door Verwijderd op 15-10-2003 11:51 ]


Acties:
  • 0 Henk 'm!

  • McFreak
  • Registratie: December 2000
  • Laatst online: 07-09 16:15

McFreak

McFraGG de gekste !!

zet er een debug functie in en je weet het:

$debug = true
if($debug)echo $waarde

McFraGG de gekste !!


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
sorry, geen foutmelding & geen return waarde
als ik een ongeldig $start_id meegeef returned hij wel 0, maar het gevonden record returned hij niet.
ik kan hem op het punt waar ik hem wil returnen wel echo'en...

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
oooh inderdaad Glimi, fladder & swfreak....
/me slaps himself on his head

thnx! :)
Pagina: 1