| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
radumm
Data înscrierii: 13/Apr/2005
Mesaje: 6
|
| Trimis: Mar Iun 03, 2008 3:15 pm Titlul subiectului: problema cu result array in functie recursiva |
|
|
am o problema mare cu codul de mai jos si de 2 ore incerc sa imi dau seama unde gresesc dar nu pricep.
ideea e ca in interiorul functiei imi afiseaza corect array-ul
cand incerc sa il afisez dupa ce a fost functia executata nu imi arata nimic.
puteti sa ma ajutati si sa imi spuneti de ce nu imi intoarce funcia rezultatul?
tabelul are 3 coloane folosite in aceasta functie:
id - auto_increment - numarul unic al fiecarei inregistrari
idf - legatura intre copil si parinte - daca este 0 este meniu principal
nivel - la ce distanta de meniul principal se afla inregistrarea
functia merge corect (inainte de return afisez arrayul care este corect)
nu pricep de ce nu imi intoarce rezultatul
sunt disperat :wallbash:
Cod:
function parinte($id,$nivel=array()) {
// avem id-ul meniului ales
$query=" Select * from meniu where id=".$id;
$result = mysql_query($query);
$row=mysql_fetch_assoc($result);
$nivel[$row['nivel']]=$row['id'];
if($row['idf']==0) {
print_r($nivel);
return $nivel;
}else{
parinte($row['idf'],$nivel);
}
}
echo"<pre>";
print_r(parinte(29));
echo"</pre>";
va multumesc |
|
| Sus |
|
gabysolomon
Data înscrierii: 09/Apr/2006
Mesaje: 743
Locație: Bacau
|
| Trimis: Mar Iun 03, 2008 5:11 pm Titlul subiectului: |
|
|
else {
return parinte(.....); |
|
| Sus |
|
212
Data înscrierii: 12/Mai/2008
Mesaje: 13
|
| Trimis: Mar Iun 03, 2008 5:12 pm Titlul subiectului: |
|
|
Cod:
........................................
if($row['idf']==0) {
print_r($nivel);
return $nivel;
........................................
scoate print_r($nivel); din functie .... 8O
212 |
|
| Sus |
|
vectorialpx
Data înscrierii: 01/Mar/2005
Mesaje: 3012
Locație: țopăi pe tasta DELETE
|
| Trimis: Mar Iun 03, 2008 5:13 pm Titlul subiectului: |
|
|
in primul rand afiseaza-ti erorile [error_reporting(E_ALL)]
apoi, cum apelezi functia?
edit //
gaby, acolo e recursivitatea, deci aia nu e o greseala
212, ala e doar un debug... nu are importanta
radumm, functia returneaza un array [dupa cate imi dau eu seama]
$ar = parinte('id', 'nivel');
print_r($ar); |
|
| Sus |
|
gabysolomon
Data înscrierii: 09/Apr/2006
Mesaje: 743
Locație: Bacau
|
| Trimis: Mar Iun 03, 2008 5:25 pm Titlul subiectului: |
|
|
@octavian
imi pare rau ca tb sa te contrazic .. .dar daca rezultatul trebuie retunat ... atunci trebuie acel return.
si e ok daca pune si asa print_r(parinte(29)); nu are importanta asupra rezultatului.
daca ma insel .. atunci mia culpa ... am cenusa pregatita |
|
| Sus |
|
radumm
Data înscrierii: 13/Apr/2005
Mesaje: 6
|
| Trimis: Mar Iun 03, 2008 5:25 pm Titlul subiectului: |
|
|
multumesc gabysolomon
asta era gresala - dar nici ca ma prindeam
multumesc tare mult |
|
| Sus |
|
vectorialpx
Data înscrierii: 01/Mar/2005
Mesaje: 3012
Locație: țopăi pe tasta DELETE
|
| Trimis: Mar Iun 03, 2008 5:28 pm Titlul subiectului: |
|
|
| ok, my bad... nu am testat |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |