Professional Documents
Culture Documents
Pierwsza pomoc
Autorzy: Maria Sok, Radosaw Sok
ISBN: 978-83-246-1073-0
Format: A5, stron: 112
Spis treci
Wstp /5
1. Czym s dynamiczne strony WWW? /9
2. Skd pobra pakiet XAMPP? /10
3. Jak zainstalowa pakiet XAMPP? /12
4. Jak przetestowa dziaania serwera WWW? /14
5. Jak zabezpieczy modu administracyjny pakietu XAMPP? /15
6. Dlaczego strona bezpieczestwa XAMPP
nie moe zosta wywietlona? /17
7. Jak umieci na serwerze swoj pierwsz stron WWW? /18
8. Jak korzysta na swoich stronach WWW
z jzyka programowania PHP? /20
9. Jak korzysta ze zmiennych? /23
10. Jak umoliwi uytkownikowi
wprowadzenie danych do programu? /26
11. Jak uzaleni dziaanie programu od jakiego warunku? /27
12. Jak wygodnie podawa dane stronie WWW? /29
13. Jak wykona jedn operacj kilka razy z rzdu? /31
14. Jak czy ze sob kilka warunkw? /35
15. Jak korzysta z tablic? /38
16. Do czego su podprogramy? /43
17. Jak budowa stron WWW
na podstawie powtarzajcych si fragmentw? /46
18. Jak przechowywa informacje o dziaaniach uytkownika? /50
19. Jak zarzdza baz danych MySQL? /56
20. Jak zaoy nowe konto uytkownika bazy danych? /58
21. Jak zaoy now baz danych? /61
22. Jak stworzy now tabel danych w bazie? /63
23. Jak przydzieli prawa dostpu do bazy? /68
Spis treci 3
4 Spis treci
25. Jak
nawizywa
poczenie
z baz danych
z poziomu
kodu PHP?
aza danych obsugiwana za pomoc specyficznego narzdzia nie jest specjalnie przydatna. Owszem, jej moliwoci
wyszukiwania i grupowania danych mog by naprawd wielkie, jeeli jednak uytkownik bazy nie ma wobec niej takich
wymaga, prosty arkusz kalkulacyjny bdzie wygodniejszy
w obsudze i umoliwi szybsze wprowadzenie danych.
Si baz danych jest jednak moliwo bezporedniej wsppracy z wasnymi stronami WWW. Za pomoc kilku polece
jzyka PHP mona uzyska moliwo odczytywania danych
z bazy, filtrowania tych danych wedug zadanych kryteriw,
dodawania nowych rekordw lub modyfikowania ju istniejcych, a na koniec usuwania wybranych rekordw danych.
Zanim jednak bdzie mona z poziomu programu PHP
odwoa si do danych zapisanych w bazie, naley nawiza
poczenie z serwerem bazy danych. Odpowiada za to instrukcja mysql_connect(), ktrej parametrami s:
74
Teraz musimy zadecydowa, ktrej bazy bdziemy uywa w trakcie caego poczenia. Oczywicie, decyzj mona
zmienia w czasie pracy (a nawet selektywnie wybiera tabele
z dowolnych baz), jednak w wikszoci przypadkw jednokrotne dokonanie wyboru zaraz po nawizaniu poczenia
cakowicie wystarcza. Do wyboru bazy danych suy instrukcja
mysql_select_db(), ktrej parametrem jest nazwa bazy danych;
zwracana warto oznacza, czy wybr si uda (true), czy te
by z jakiego powodu niemoliwy (false):
$ok = mysql_select_db('szkola');
if ($ok === false) die('Nie mona byo wybra bazy danych '
.'z powodu bdu: ' . mysql_error());
Szkielet ten nie bdzie ju powtarzany w kolejnych wiczeniach: po prostu instrukcje korzystajce z bazy danych
musz znale si midzy sekwencj instrukcji nawizujcych poczenie z baz a instrukcj mysql_close() zamykajc
to poczenie.
brew pozorom odczytanie danych z bazy i ich wywietlenie zazwyczaj wymaga znacznie wicej kodu ni pozostae, na pierwszy rzut oka bardziej skomplikowane operacje.
Gdy jednak pozna si schemat wykorzystywany za kadym
razem, gdy chce si wywietli dane z bazy na stronie, ilo
kodu przestaje mie znaczenie.
Pobranie danych wymaga przesania bazie danych zapytania (ang. query) SQL. W odpowiedzi na zapytanie baza
danych odsya zbir rekordw speniajcych to zapytanie.
Zadaniem programu jest odczytanie kadego rekordu (jeden
po drugim) to, co program zrobi z tymi rekordami,
jest ju kwesti fantazji programisty.
Zacznijmy od przygotowania zapytania. Zapytanie
to po prostu tekst polecenia przesyanego bazie danych; dlatego
przygotujemy je w zmiennej tekstowej tak, jakbymy zapisywali
kawaek tekstu w pamici. Zapytanie moe mie na przykad
nastpujc posta:
26. Jak
umieszcza
na stronie
WWW dane
pochodzce
z bazy?
77
<tr>'."\r\n";
echo '
<td>'.$lp.'</td>'."\r\n";
echo '
<td>'.$imie.'</td>'."\r\n";
echo '
<td>'.$nazwisko.'</td>'."\r\n";
echo '
echo '
<td>'.$nrtelefonu.'</td>'."\r\n";
</tr>'."\r\n";
}
?>
</tbody>
Sprbujmy teraz zmodyfikowa zapytanie tak, aby baza filtrowaa wyniki i wywietlaa wycznie dane uczniw, ignorujc
nauczycieli i pracownikw technicznych. Wymaga to tylko
drobnej zmiany w tekcie zapytania SQL:
$zapytanie = 'SELECT imie, nazwisko, telefon FROM osoby WHERE
stanowisko="u"';
27. Jak
wprowadza
za pomoc
strony WWW
nowe dane
do bazy?
81
Na pocztku strony PHP sprawdzimy zatem, czy uytkownik przesa choby samo imi. Jeli tak nawiemy poczenie z baz danych i przygotujemy si do wysyki. To ten sam
kod, ktry wprowadzalimy przy pobieraniu danych z bazy:
<?php
if (isset($_POST['imie'])) {
$baza = mysql_connect('localhost', 'baza', 'helion');
if ($baza === false) die('Nie mona byo nawiza poczenia
z baz '
.'z powodu bdu: ' . mysql_error());
mysql_query('SET NAMES "utf8"');
$ok = mysql_select_db('szkola');
if ($ok === false) die('Nie mona byo wybra bazy danych '
.'z powodu bdu: ' . mysql_error());
// --- tutaj bd instrukcje obsugujce wysyk danych --mysql_close($baza);
}
?>
Teraz sprawdzimy wszystkie pola (zasadniczo zatem zmienne). Nie trzeba sprawdza pola telefon, gdy w zasadzie osoba
moe nie posiada telefonu, oraz pola stanowisko, gdy powinno
zosta wybrane z listy (zreszt sama baza danych odrzuci niepoprawne wartoci tego pola). Reszt trzeba zweryfikowa:
if (($imie == '') || ($nazwisko == '') || ($dataurodzenia ==
'')
|| ($miejsceurodzenia == '') || ($adreskor == '')) {
echo '<p style="color: red;">Nie wypenie jednego
z pl!</p>';
echo '<p>Cofnij si i popraw swoj omyk.</p>';
} else {
// --- tutaj wysyka danych do bazy --}
Zapytanie moe si wydawa na pierwszy rzut oka skomplikowane, ale jest to spowodowane wycznie du liczb
operacji czenia tekstu i zmiennych. Tak naprawd zapytanie
przybierze nastpujc posta:
INSERT INTO osoby SET imie="Jan", nazwisko="Kowalski",
dataurodzenia="1973-08-11", ...
co czytamy: wstaw (INSERT) do tabeli (INTO) o nazwie osoby nowy rekord, ustawiajc (SET) wartoci pl: imie na Jan,
nazwisko na Kowalski, dataurodzenia na 1973-08-11