Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]ścieżka w katalogu
Forum PHP.pl > Forum > PHP
kłulik
Witam. Mam taki kodzik:
  1. <?
  2. function path($id) {
  3. if(!isset($id)) {
  4. $path .='/';
  5. }
  6. else {
  7. $sql = 'SELECT * FROM categories WHERE category_id LIKE ''.$id.''';
  8. $rs = mysql_query($sql);
  9. $row = mysql_fetch_array($rs);
  10. $path .= '<a href=\"?id='.$row['category_id'].'\">'.$row['category_name'].'</a>/';
  11. if(strlen($id)!=0) {
  12. $id = substr($id, -3);
  13. $path .= path($id).'/';
  14. }
  15. }
  16. return $path;
  17. }
  18. ?>

Problem w tym że ten kod nie działa.
Zmienna $id przyjmuje wartości np.001,002,001001,002001 itp.
Funkcja powinna zwrócić string w postaci '/Programy/Muzyka/Rock/Polski'
Co tu jet źle i co zrobić żeby było dobrze?
Pliz o pomoc
aleksander
  1. <?
  2. function path($id) {
  3. if(!isset($id)) {
  4. $path .='/';
  5. }
  6. else {
  7. $rs = mysql_query( &#092;"SELECT * FROM categories WHERE category_id = '$id'\" );
  8. $row = mysql_fetch_array($rs);
  9. $path .= '<a href=\"?id='.$row['category_name'].'\">'.$row['category_name'].'</a>/';
  10. if(strlen($id)!=0) {
  11. $id = substr($id, -3);
  12. $path .= path($id).'/';
  13. }
  14. }
  15. return $path;
  16. }
  17. ?>
moze tak?
kłulik
Niestety to nie działa. Zapytanie SQL jest dobre. Problem leży w wywołaniu funkcji 'path' przez samą siebie.
tiraeth
  1. <?
  2. function path($id)
  3. {
  4.  if(!isset($id))
  5.  {
  6. $path .='/';
  7.  }
  8.  else
  9.  {
  10. $rs = mysql_query( &#092;"SELECT * FROM categories WHERE category_id = '$id'\" );
  11. $row = mysql_fetch_array($rs);
  12. $path .= '<a href=\"?id='.$row['category_name'].'\">'.$row['category_name'].'</a>/';
  13. if(strlen($id)!=0)
  14. {
  15.  $id = substr($id, -3);
  16.  $path .= path($id).'/';
  17. }
  18.  }
  19.  return $path;
  20. }
  21. ?>


dlaczego wywołujesz funkcję path w niej samej? snitch.gif
kłulik
Bo $id może nie istnieć. Może mieć też wartość np. 001002003 i wtedy pobieram nazwę dla category_id=001002003. Później obcinam id o 3, czyli $id=001002 i znów pobieram nazwę. I tak w kółko aż $id nie będzie puste.
Ale to nie działa.
Jeśli znasz jakiś inny prostrzy działający sposób to pliz podaj go.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.