Witam mam problem ale moze najpierw zaczne od bazy danych.
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 SOBIEprawidł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;
}
?>
Ten post edytował Fistach 27.12.2007, 14:13:13