webmaster webmastering webdesign

Jesteś tutaj: webmade.org >> porady >> php + mysql

Includowanie - bazy danych

autor: Patryk 'yarpo' Jar, ostatnia modyfikacja: 2007-02-25

szukaj: include include includowanie includowanie PHP PHP

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 &#8211; 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

Osoby czytające tę publikację przeglądały również:

Chcesz zostać programistą?

Poznaj 6 kroków do efektywnej
nauki programowania!

 

valid XHTML
valid CSS
© 2004-2008 copyright by webmade.org