Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z wylistowaniem drzewka z bazy danych
JimX
post 23.10.2005, 01:23:49
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 23.11.2003
Skąd: Olsztyn

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


Witam, mam taki problem, ze proboje wylistować liste hoteli wg danego kraju, regionu oraz miasta ale lista hoteli wyswieetla mi sie nieprawidlowo ( panstwa, regiony i miasta wyswietlaja sie prawidlowo).

Oto kod:

  1. <?php
  2.  
  3. $h_nr = 0; 
  4. $panstwo = '';
  5. $region = '';
  6.  
  7. $p = '';
  8. $panstwa_lista = sql('SELECT id, name_'.$lang.' as name FROM countries ORDER BY name ASC');
  9. while($h = mysql_fetch_assoc($panstwa_lista))
  10. { $p[] = $h; }
  11.  
  12. $akt_p = '';
  13. $akt_pn = '';
  14.  
  15. for($i=0; $i<mysql_num_rows($panstwa_lista); $i++)
  16. {
  17. $akt_p = $p[$i]['id'];
  18. $akt_pn = $p[$i]['name'];
  19.  
  20. $r = '';
  21.  
  22.  
  23. $regiony_lista = sql('SELECT id, name_'.$lang.' as name FROM regions WHERE country="'.$akt_p.'" ORDER BY name ASC');
  24.  
  25. while($h2 = mysql_fetch_assoc($regiony_lista))
  26. { $r[] = $h2; }
  27.  
  28. $akt_r = '';
  29. $akt_rn = '';
  30.  
  31. for($i2=0; $i2<mysql_num_rows($regiony_lista); $i2++)
  32. {
  33. $akt_r = $r[$i2]['id'];
  34. $akt_rn = $r[$i2]['name'];
  35.  
  36. $m = '';
  37.  
  38. $miasta_lista = sql('SELECT id, name_'.$lang.' as name FROM cities WHERE region="'.$akt_r.'" ORDER BY name ASC');
  39. while($h3 = mysql_fetch_assoc($miasta_lista))
  40. { $m[] = $h3; }
  41.  
  42.  
  43. $akt_m = '';
  44. $akt_mn = '';
  45.  
  46. for($i3=0; $i3<mysql_num_rows($miasta_lista); $i3++)
  47. {
  48.  
  49. $akt_m = $m[$i3]['id'];
  50. $akt_mn = $m[$i3]['name'];
  51.  
  52. if($panstwo <> $akt_p) // wypisz nowe panstwo...
  53. {
  54. $panstwo = $akt_p;
  55. $hotele[$h_nr]['id'] = '';
  56. $hotele[$h_nr]['name'] = '>>'.$akt_pn;
  57. $h_nr = $h_nr+1;
  58. }
  59.  
  60. if($region <> $akt_r) // wypisz nowy region...
  61. {
  62. $region = $akt_r;
  63. $hotele[$h_nr]['id'] = '';
  64. $hotele[$h_nr]['name'] = '-->'.$akt_rn;
  65. $h_nr = $h_nr+1;
  66. }
  67.  
  68. if($miasto <> $akt_m) // wypisz nowe miasto...
  69. {
  70. $miasto = $akt_m;
  71. $hotele[$h_nr]['id'] = ''; 
  72. $hotele[$h_nr]['name'] = '------>'.$akt_mn;
  73. $h_nr = $h_nr+1;
  74.  
  75.  
  76. }
  77.  
  78. $hotele_lista = sql('SELECT id, name FROM hotels WHERE city="'.$m[$i3]['id'].'" ORDER BY name ASC');
  79. while($h4 = mysql_fetch_assoc($hotele_lista))
  80. { $h[] = $h4; }
  81.  
  82.  
  83. for($i4=0; $i4<mysql_num_rows($hotele_lista); $i4++)
  84. {
  85. $hotele[$h_nr]['id'] = $h[$i4]['id']; 
  86. $hotele[$h_nr]['name'] = $h[$i4]['name'];
  87. $h_nr = $h_nr+1;
  88. }
  89.  
  90. }
  91.  
  92.  
  93.  
  94.  
  95. }
  96. }
  97.  
  98. ?>


Struktura tabeli hotels:
Kod
id|name_pl|name_en|city

Struktura tabeli regions:
Kod
id|name_pl|name_en|country

Struktura cities:
Kod
id|name_pl|name_en|region

Struktura countries:
Kod
id|name_pl|name_en


Wszystkie te region, country, i city to numery ID danego kraju, regionu, miasta.

Blad jest gdzies przy listowaniu liczby hoteli bo wyswietla niewlasciwe hotele do niewlasciwych miast.

Troche to chaotyczne ale mam nadzieje, ze zrozumiałe.

P.S. Wiem ze kod zagmatwany ale robilem to juz nad ranem.
Proszę o pomoc, i z góry dziękuje!
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: 15.07.2025 - 05:07