Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Problem przy tworzeniu menu
Forum PHP.pl > Forum > Przedszkole
Vion
Witam
Stworzyłem bazę danych taką jak na poniższym rysunku.
http://img147.imageshack.us/my.php?image=bazamenuxw5.jpg
Następnie napisałem funkcje(menu) która będzie pobierała z bazy danych (engine_menu_blok) nazwy bloków menu np. Glowna, Rozne, Informacje i umieszczał te bloki na stronie tak jak na poniższym obrazku.
http://img99.imageshack.us/my.php?image=blokiaf4.jpg
  1. function menu_blok()
  2. {
  3.  
  4. $sql=  "SELECT *
  5. FROM engine_menu_blok ORDER BY blok_id";
  6.  $result = mysql_query($sql)
  7.    or die("Niepoprawne zapytanie: " . mysql_error());
  8.  while ($row = mysql_fetch_array($result)) {
  9.  
  10. ?>
  11. <div class="border">
  12.            <div class="naglowekmenu">
  13.                <div class="text"><?php echo $row['blok_name'];?><br></div>
  14.            </div>
  15.            <div class="tlomenu">
  16.                <div class="menudemo04d">
  17.                    <div class="menudemo04 a">
  18.                    <?php menu(); ?>
  19.                    <div>
  20.        </div></div></div></div></div><br>
  21.  
  22.  
  23. <?php
  24.    }
  25. }

W tej funkcji jest zagnieżdżona inna funkcja(menu_blok) która bedzię pobierała z tabeli(engine_menu) nazwy odnośników w menu np. Historia, Kronika, Galeria u imieszczała je w odpowiednim bloku tzn. na podstawie menu_blok_id bedzię przyporządkowała odnośnik do bloku o takim samym id co w blok_id. Gdy odpalam mój skrypt pobiera bloki i odnośniki, ale każdy odnośnik umieszcza w każdym bloku(tak jak na poniższym obrazku) jak zrobić żeby do każdego bloku pobierało tylko odnośniki które maja taki damo id.
Np. Tak chcę żeby to działało:
blok Glowne- odnośniki- Historia, Kronika
blok Rozne- odnośniki- Galeria
blok Informacje- odnośniki- Rozklad PKP, Rozklad Jazdy PKS
Chciałbym żeby to wszystko działo się automatycznie, tzn. żeby przy dodawaniu nowych bloków albo odnośników nie musiałbym nic dodawać w skrypcie.

  1. function menu()
  2. {
  3. $sql=  "SELECT *
  4. FROM engine_menu, engine_menu_blok where menu_blok_id=blok_id ORDER BY menu_id";
  5.  $result = mysql_query($sql)
  6.    or die("Niepoprawne zapytanie: " . mysql_error());
  7.  while ($row = mysql_fetch_array($result)) {
  8.  
  9. ?>
  10.  
  11. <a href="<?php echo $row['menu_href'];?>.php"><?php echo $row['menu_name'];?></a>
  12. <?php
  13. }}

http://img99.imageshack.us/my.php?image=blokiaf4.jpg
kefirek
Powinno działać

  1. <?php
  2. $wynik = mysql_query("SELECT * FROM engine_menu_blok ORDER BY blok_id");
  3. while($row = mysql_fetch_assoc($wynik)) {
  4.  
  5. echo "<div class=\"border\">
  6. <div class=\"naglowekmenu\">
  7. <div class=\"text\">".$row['blok_name']."><br></div>
  8. </div>
  9. <div class=\"tlomenu\">
  10. <div class=\"menudemo04d\">
  11. <div class=\"menudemo04 a\">";
  12.  
  13. $wynik1 = mysql_query("SELECT * FROM engine_menu WHERE menu_blok_id='".$row['blok_id']."' ORDER BY menu_id");
  14. while($row1 = mysql_fetch_assoc($wynik1)) {
  15.  
  16. echo "<a href='".$row1['menu_href']."'>".$row1['menu_name']."</a>";
  17.  
  18. }
  19. echo "<div>
  20. </div></div></div></div></div><br>";
  21. }
  22. ?>
Vion
Dzięki Ci wielkie oto mi chodziło a nie mogłem się z tym uporać długi czas.
A mógłbyś wyjaśnić dlaczego tak trzeba zrobić?
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.