Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]problem z przekazaniem wartosci zmiennej do funkcji
Fistach
post 27.12.2007, 13:51:44
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 23.11.2003

Ostrzeżenie: (0%)
-----


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:

  1. <?php
  2. function getLastReviewID($cat,$lrid) { // definiowanie funkcji, $cat < id kategorii ktora przeszukuje, $lrid - id najnowszego artykulu
  3.  
  4. // sprawdz czy sa subkategorie
  5.  
  6. $subcatexist = 0 + mysql_result(sql("SELECT COUNT(id) FROM kategorie WHERE parent_cat = '$cat' AND typ = '1' AND aktywny = '1'"),0);
  7.  
  8.  
  9. if ($subcatexist == 0) { // jezeli nie ma subkategorii to znajdz najnowszy artykul
  10.  
  11. $maxid = 0 + mysql_result(sql("SELECT MAX(id) FROM kategorie WHERE parent_cat = '$cat' AND typ = '2' AND aktywny = '1'"),0);
  12.  
  13. if ($maxid > $lrid) {  // porownanie i ewentualna zmiana najnowszego artykulu
  14.  
  15.  $lrid = $max;
  16.  
  17. }
  18.  
  19.  
  20. } else {  // jezeli sa subkategorie to wywolaj funkcje rekurencyjnie dla kazdego podkatalogu
  21.  
  22. $pobierz_subcats = sql("SELECT id FROM kategorie WHERE parent_cat = '$cat' AND typ = '1' AND aktywny = '1'");
  23.  
  24. while ($row = mysql_fetch_array($pobierz_subcats)) {
  25.  
  26. $id = $row['id']; // pobierz id
  27.  
  28. getLastReviewID($id,$lrid); // wywolaj funkcje
  29.  
  30.  
  31. }
  32.  
  33. }
  34.  
  35. }
  36. ?>


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:

  1. <?php
  2. function getLastReviewID($cat,&$lrid) {
  3.  
  4. $subcatexist = 0 + mysql_result(sql("SELECT COUNT(id) FROM kategorie WHERE parent_cat = '$cat' AND typ = '1' AND aktywny = '1'"),0);
  5.  
  6. if ($subcatexist > 0) {
  7.  
  8. $pobierz_subcats = sql("SELECT id FROM kategorie WHERE parent_cat = '$cat' AND typ = '1' AND aktywny = '1'");
  9.  
  10. while ($row = mysql_fetch_array($pobierz_subcats)) {
  11.  
  12. $id = $row['id'];
  13.  
  14. getLastReviewID($id,$lrid);
  15.  
  16. }
  17.  
  18.  
  19. } else {
  20.  
  21. $maxi = 0 + mysql_result(sql("SELECT MAX(id) FROM kategorie WHERE parent_cat = '$cat' AND typ = '2' AND aktywny = '1'"),0);
  22.  
  23. if ($maxi > $lrid) {
  24.  
  25. $lrid = $maxi;
  26.  
  27. }
  28.  
  29. }
  30.  
  31. return $lrid;
  32.  
  33. }
  34. ?>


Ten post edytował Fistach 27.12.2007, 14:13:13
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 21.06.2025 - 09:51