Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Zapytanie w pętli while
Forum PHP.pl > Forum > Przedszkole
Pitter
Witam. Otóż mam problem z funkcją która zwraca boczne menu strony. Oczywiście menu znajduje się w bazie danych. Jest podzielone tak:

1 tabela
- nazwa bloku menu

2 tabela
- linki do bloku

Aby wywołać to wszystko najpierw wykonuje się zapytanie do tabeli 1 a następnie w pętli while tego zapytania wykonuje się zapytanie do tabeli 2.
Problem jest w tym że nie wyświetlają się wszystkie bloki menu tylko jeden.

  1. <?php
  2. function RightMenu()
  3. {
  4. global $tbl_menu, $tbl_LinksMenu;
  5.  
  6. $query = "SELECT * FROM $tbl_menu WHERE position='right' ORDER BY lp";
  7. $result = mysql_query($query);
  8. while($r = mysql_fetch_array($result))
  9. {
  10. $id = $r['id']; 
  11. $title = $r['title'];
  12. $text = $r['text'];
  13.  
  14. // $text zawiera w niektórych przypadkach kod html po to aby można było wyświetlić
     formularz itp.
  15. // tu sprawdza czy ma odrazu wyświetlać formularz zawarty w tabeli $tbl_menu czy z
    asięgnąć po 
  16. // linki do tabeli $tbl_LinksMenu
  17. if($text=='')
  18. {
  19.  
  20. $query = "SELECT * FROM $tbl_LinksMenu WHERE blok='$id' ORDER BY lp";
  21. $result = mysql_query($query);
  22. while($r = mysql_fetch_array($result))
  23. { 
  24. $TitleLink = $r['title'];
  25. $href = $r['href'];
  26.  
  27. $show .= '<li><a href="'.$href.'">'.$TitleLink.'</a></li>';
  28. } // end while
  29.  
  30. echo '<h1>'.$title.'</h1>
  31. <ul class="sidemenu">'.$show.'</ul>';
  32.  
  33. }// end if
  34. else
  35. {
  36. echo '<h1>'.$title.'</h1>';
  37. echo $text;
  38. }
  39.  
  40. } // end while
  41.  
  42. }
  43. ?>
nospor
glowne zapytanie korzysta z $r i podrzedne zapytania korzystaja z $r. Te $r ci sie nadpisują. Nie oszczedzaj na zmiennych i uzywaj innych nazw.
Podobnie ma sie sprawa z $result. Patrz co piszesz.
Pitter
ok dzięki zapamiętam.
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.