Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Dynamiczna strona
Forum PHP.pl > Forum > Przedszkole
adrianozo
Witam wszystkich.

Zacząłem zastanawiać się nad tym jak działają dynamiczne strony takie jak wordpress itp.
Głównie chodzi o nowe zakładki w menu.
Wchodzę do panelu admina i dodaję nową zakładkę o nazwie xxx i odnosnik do niej jest index.php?page=xxx
Tylko jak to jest zrobione, że nie dodaje do indexu ręcznie case include break oraz nie tworze nowego pliku w danym katalogu?
Mam nadzieje, że dobrze to wytłumaczyłem.

Pozdrawiam smile.gif
Mefiuu
nie wiem czy o to Ci chodzi, ale ja to ostatnio robiłem do mini CMS ;P mam tabelę w bazie z polami ID, nazwa, link, treść, widoczny. W panelu mam pola do uzupełniania tego (tak w skrócie). ID samo dodaje, nazwa to np. "Kontakt", link musi być ?page=cośtam, treść dodaję za pomocą tinyMCE, widoczny tak/nie. Później pobieram w menu z MySQL ID, link i nazwę i w pętli to wyświetlam wg. ID i jeżeli widoczny == tak winksmiley.jpg to w skrócie.

edit.

AAA... a później w indexie odwołuję się
  1. if($_GET['page']) {
  2. $nazwa = $_GET['page'];
  3. $tresc = mysql_query("SELECT tresc FROM menu WHERE link='?page=$nazwa'");
  4. echo mysql_result($tresc,0,0);
  5. }


to mój sposób i nie wiem czy o to chodziło winksmiley.jpg
adrianozo
Mógłbym prosić o bardziej rozwinięte wypowiedzi bo mało z tego rozumiem
Ramzaa
ściągnij jakiś prosty cms z tą funkcją i sprawdź smile.gif
potreb
Chyba od pobrania szybsze będzie wyszukaj na forum, było mnóstwo razy poruszane.
Zresztą powyższą metodę nie stosuję, bo to nie sposób, choć na początek starczy.

Możesz zawsze zobaczyć jak to jest we frameworku.
adrianozo
Jaki np framework polecasz do zobaczenia tej funkcji?
Pawel_W
ja polecam zapoznanie się najpierw z bazami danych tongue.gif
bastard13
Jest jakaś funkcja ładująca, która pobiera wartość geta, odpowiednio waliduje, sprawdza czy plik o podanej nazwie istnieje i jeżeli tak, to wywołuje funkcje include.
Można użyć http://php.net/manual/en/function.spl-autoload-register.php aby dołączyć jakąś funkcję ładującą automatycznie.
tehaha
Cytat(bastard13 @ 7.09.2010, 21:54:46 ) *
Jest jakaś funkcja ładująca, która pobiera wartość geta, odpowiednio waliduje, sprawdza czy plik o podanej nazwie istnieje i jeżeli tak, to wywołuje funkcje include.
Można użyć http://php.net/manual/en/function.spl-autoload-register.php aby dołączyć jakąś funkcję ładującą automatycznie.

plik? przecież to ma być strona dynamiczna, więc treść jest generowana z danych z bazy.

Po co w ogóle tak to wszystko komplikować, sprawa jest bardzo prosta, przekazujesz sobie w każdym linku id treści czyli zrobisz sobie link np. domena.pl/strona/1/newsy.html, tytułu nie używasz do identyfikacja bo nie jest to coś unikalnego, używasz go tylko po to, żeby link był bardziej przyjazny dla użytkowników i bardziej informacyjny. treść do strony pobierasz odwołując się do rekordu numerem id.
adrianozo
Dzięki wielkie smile.gif

Chciałbym się dowiedzieć jak to jest zrobione, że nie dodaje do indexu ręcznie case include break oraz nie tworze nowego pliku w danym katalogu tylko wchodzę do panelu admina i dodaję nową zakładkę o nazwie xxx i odnośnik do niej jest index.php?page=xxx?
Daiquiri
Powoduje to wywołanie zmiennej $_GET['page'] z zadanym parametrem. Głupawy przykład z pseudokodem: $_GET['page'] to numer ID newsa z bazy, który chcesz wyświetlić. W zapytaniu do bazy korzystasz z SELECT * FROM newsy WHERE id = $_GET['page'].
adrianozo
No dobra, ale zapytanie gdzieś muszę wcisnąć
Daiquiri
Masz np. plik index.php a w nim wyświetlanie zmiennej $news, gdzie $news to treść nowości pobrana z zapytania SELECT tresc FROM newsy WHERE id = $_GET['page']. Teraz wystarczy w index.php dać echo $news. W zależności od wybranego ID wyświetla Ci się inna nowość bez podpinania zewnętrznych plików.
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.