TABLE kategorie
pola: id, parent_cat, aktywny itd...
sql - odwolanie do innej funkcji ktorej parametrem jest zapytanie SQL (ale to niewazne jest bo dziala:))
i chce napisac funkcje zeby znalazla mi najnowszy artykul wiec tak:
<?php function getLastReviewID($cat,$lrid) { // definiowanie funkcji, $cat < id kategorii ktora przeszukuje, $lrid - id najnowszego artykulu // sprawdz czy sa subkategorie $subcatexist = 0 + mysql_result(sql("SELECT COUNT(id) FROM kategorie WHERE parent_cat = '$cat' AND typ = '1' AND aktywny = '1'"),0); if ($subcatexist == 0) { // jezeli nie ma subkategorii to znajdz najnowszy artykul $maxid = 0 + mysql_result(sql("SELECT MAX(id) FROM kategorie WHERE parent_cat = '$cat' AND typ = '2' AND aktywny = '1'"),0); if ($maxid > $lrid) { // porownanie i ewentualna zmiana najnowszego artykulu $lrid = $max; } } else { // jezeli sa subkategorie to wywolaj funkcje rekurencyjnie dla kazdego podkatalogu $pobierz_subcats = sql("SELECT id FROM kategorie WHERE parent_cat = '$cat' AND typ = '1' AND aktywny = '1'"); $id = $row['id']; // pobierz id getLastReviewID($id,$lrid); // wywolaj funkcje } } } ?>
Problem polega na tym, że nie zamienia $maxid z $lrid a wszystko oprócz tego działa czyli znajduje $maxid z każdej subkategorii. Jak zrobić, żeby funkcję wywołać z tym drugim parametrem tak żeby było OK? Nie wiem czemu mi to się nie zmienia bo $cat przy wywoływaniu funkcji działa.
PORADZIŁEM SOBIE
prawidłowo napsiana funkcja:
<?php function getLastReviewID($cat,&$lrid) { $subcatexist = 0 + mysql_result(sql("SELECT COUNT(id) FROM kategorie WHERE parent_cat = '$cat' AND typ = '1' AND aktywny = '1'"),0); if ($subcatexist > 0) { $pobierz_subcats = sql("SELECT id FROM kategorie WHERE parent_cat = '$cat' AND typ = '1' AND aktywny = '1'"); $id = $row['id']; getLastReviewID($id,$lrid); } } else { $maxi = 0 + mysql_result(sql("SELECT MAX(id) FROM kategorie WHERE parent_cat = '$cat' AND typ = '2' AND aktywny = '1'"),0); if ($maxi > $lrid) { $lrid = $maxi; } } return $lrid; } ?>