Jesteś tutaj: webmade.org >> porady >> php + mysql
autor: Patryk 'yarpo' Jar, ostatnia modyfikacja: 2007-02-25
Porada ta jest rozwinięciem: Includowanie - pliki
Przedstawię tu, w jaki sposób mając tylko 1 [słownie: jeden] plik – 'index.php' – można wczytywać nieskończenie wiele różnych stron. Wszystko dzięki odpowiednim wykorzystaniu bazy danych MySQL (równie dobrze może to być każda inna). Stwórzmy więc najpierw odpowiednią bazę danych:
Przydatną może się okazać porada: MySQL z wiersza poleceń
create database moja; # utwórz bazę danych use moja; # przejdź do tej bazy danych create table strony ( id_strony int(5) primary key auto_increment, menu char(30) not null, tresc text ); insert into strony values (null, 'home', 'to jest strona główna'); insert into strony values (null, 'o mnie', 'to jestem ja'); insert into strony values (null, 'kontakt', 'moje GG: 00000');
Jeśli udało cię się już stworzyć bazę danych i odpowiednią tabelę, zapraszam dalej. Teraz stworzymy stronę index.php:
<?PHP echo'<?xml version="1.0" encoding="iso-8859-2"?>'; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl"> <head> <meta http-equiv="Content-type" content="application/xhtml+xml; charset=iso-8859-2" /> <title> [tytuł strony] </title> </head> <body> <!-- Tu stały top, banner, logo itp. --> <?PHP /*Tu będzie kod php */ ?> <p>Tu stała stopka</p> </body> </html>
Menu będzie wyglądać tak:
<ul> <li><a href="index.php?id_strony=1">home</a></li> <li><a href="index.php?id_strony=2">o mnie</a></li> <li><a href="index.php?id_strony=3">konakt</a></li> </ul>
Gdzie id_strony jest numerem rekordu w bazie danych, który przechowuje treść dla tej podstrony. Oczywiście aby to miało sens, także menu powinno być generowane automatycznie:
<ul> <?PHP $conn = mysql_connect('localhost', 'root', 'krasnal'); mysql_select_db('moja'); $query = 'SELECT id_strony, menu FROM strony;'; $wynik = mysql_query($query); while($rekord = mysql_fetch_assoc($wynik)) echo '<li><a href="index.php?id_strony='.$rekord['id_strony'].'">' .$rekord['menu']."</a></li>\n"; ?> </ul>
A tak będzie wyglądać kod PHP:
<?PHP if (isset($_GET['id_strony'])) @$id_strony = $_GET['id_strony']; else $id_strony = 1; // jeśli nie wysłano takiej zmiennej – wczytaj index $query = 'SELECT tresc FROM strony where id_strony='.$id_strony.';'; $wynik = mysql_query($query); $rekord = mysql_fetch_assoc($wynik); echo '<p>'.$rekord['tresc'].'</p>'; mysql_close($conn); ?>
I to by było na tyle. Oczywiście jest to bardzo prymitywny kod. Jak może zauważyłeś brakuje też panelu administracyjnego, w którym można by dodawać nowe treści. Jednak pokazuje zasadę działania includowania treści z bazy danych. Na podstawie tego można juz całkiem sporo zbudować. Życzę miłego eksperymentowania :P.
Uwaga: Nie przypadkiem użyłem 'id_strony' zamiast 'id'. Jest to zalecenie google [a każdy w google być chce, więc lepiej się stosować:P ]
Warto także przeczytać:
Patryk 'yarpo' Jar
szukaj: include includowanie PHP
Osoby czytające tę publikację przeglądały również:
© 2004-2008 copyright by webmade.org