Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Menu połączone z bazą i zaczytywanie treści
Forum PHP.pl > Forum > Przedszkole
gregory_xx
Witam,
mam menu wprowadzone w bazie danych (tabela MENU), i chciałbym aby po wyświetleniu menu i wyborze linka zaczytał mi treść która jest umieszczona w bazie danych do danego menu dana treść

Tak wygląda link:
  1. $wynik=mysql_query("SELECT * FROM menu ORDER BY id") or die ("Błąd w zapytaniu");
  2. while($rekord = mysql_fetch_assoc ($wynik)) {
  3. $id = $rekord['id'];
  4. $nazwa = $rekord['nazwa'];
  5.  
  6. print '<a class="menulewe" href="index.php?page='.$nazwa.'">&nbsp;'.$nazwa.'</a>';
  7.  
  8. }


A tak kod strony która ma wyświetlać treść:
  1.  
  2. $strony['e404'] = '404.htm';
  3.  
  4. if (isset($_POST['page']) && isset($strony[$_POST['page']])) {
  5. include($strony[$_POST['page']]);
  6. } elseif (isset($_GET['page']) && isset($strony[$_GET['page']])) {
  7.  
  8. $zaw = $_GET['page'];
  9. $wynik=mysql_query("SELECT $zaw FROM trescstrony") or die ("Błąd w zapytaniu");
  10. $rekord = mysql_fetch_assoc ($wynik);
  11. $tresc = $rekord['tresc'];
  12.  
  13. print $tresc;
  14.  
  15. } elseif (isset($_GET['page']) || isset($_POST['page'])) {
  16. include($strony['e404']);
  17. }
tomm
tablica $strony zawiera wszystkie dozwolone wartości - czy tak?
jaki błąd Ci wyrzuca, co sie dzieje?
gregory_xx
odpala tylko plik 404.htm i po kliknięciu w odnośnik nic się nie dzieje
bemol
ja bym zrobił to troszkę inaczej. Treść każdej strony trzymałbym w osobnych tabelach (nazwa tabeli taka jak w tabeli MENU pole nazwa).

W indeksie inkludowałbym sobie $_GET'em tę właśnie stronę w którą kliknąłbym w menu w ten sposób:
  1. include($_POST['page'].'.php');


Przy dodawaniu takich stron tworzyłbym dynamicznie pliki *.php z daną nazwą. W samym pliku byłoby połączenie z bazą danych i wybranie treści (stąd byłaby tylko 1 zmienna - nazwa tworzącej plik dynamicznie).
tomm
a po kliknięciu w odnośnik w pasku adresu pojawia się adres jakiego oczekiwałeś?
gregory_xx
pojawia się adres
tomm
czyli wykłada się na warunku
elseif (isset($_GET['page']) && isset($strony[$_GET['page']]))

$_GET['page'] istnieje, więc czy napewno masz nazwę strony w tablicy $strony?
wytnij na chwilę drugą część warunku i sprawdź
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.