2009 02 Podstawy MySQL [Poczatkujacy]

background image

Dla początkujących

Podstawy MySQL

22

luty 2009

Dla początkujących

Podstawy MySQL

23

www.lpmagazine.org

lin

ux

@

so

ftw

ar

e.

co

m

.p

l

Podstawy MySQL

MySQL to darmowe narzędzie służące tworzeniu i zarządzaniu bazami danych. Jest to oprogramowanie
wydajne, stabilne i niewymagające dużych nakładów finansowych.

Sylwester Zdanowski

N

iezależnie od platformy praca z bazą danych
wygląda tak samo dzięki językowi programo-
wania Structured Query Language. Przy czym
MySQL nie musi być kompatybilny z imple-

mentacjami SQL firm Microsoft czy Oracle. Jedną z moż-
liwości wykorzystania MySQL jest połączenie go z serwe-
rem WWW aby umożliwić użytkownikom stron interneto-
wych zapisywanie i przeszukiwanie danych. Tym właśnie
zajmiemy się w tym artykule, na przykładzie małego ka-
talogu stron internetowych który kiedyś stworzyłem http:
//katalognauki.100webspace.net/
. Przykład ten będzie skraj-
nie uproszczony. Wszystkie operacje będą wykonywane na
jednej tablicy, bez wykorzystania relacji.

Co będzie potrzebne

W dalszej części artykułu potrzebny będzie serwer Apache2
współdziałający z bazą danych MySQL. Wystarczy w tym
celu zainstalować kilka pakietów, dla dystrybucji Debian bę-
dą to: apache2 php5 libapache2-mod-php5 mysql-server my-
sql-client php5-mysql. Alternatywą jest instalacja oprogra-
mowania z wykorzystaniem źródeł. Po instalacji potrzebne
będzie konto z którego będą korzystać skrypty umieszczone

na stronie. Aby je utworzyć należy wykonać polecenie My-
SQL, następnie w programie dodać użytkownika i zagwaran-
tować mu uprawnienia.

Powyższe polecenia utworzą konto

janko

z hasłem

ha-

slo

. Użytkownik ten będzie miał wymienione uprawnienia

na wszystkich bazach danych, nie będzie mógł jednak ich
tworzyć. Pozostaje jedynie opuścić MySQL i zalogować się
ponownie jako utworzony użytkownik.

Zakładając, że mamy do dyspozycji prawidłowo skonfi-

gurowany serwer Apache możemy przejść do tworzenia stro-
ny wykorzystującej MySQL.

Tworzenie bazy danych i tablic

Po zalogowaniu się do MySQL z odpowiednimi uprawnie-
niami należy wykonań czynności widoczne na Listingu 3.
Podstawą jest utworzenie samej bazy danych, następnie moż-
na zobaczyć wszystkie istniejące bazy danych. Linia 3 służy
przejściu do wybranej bazy danych aby kolejne polecenia by-
ły wykonywane na niej. Czas utworzyć tabele na której będą
operowały skrypty php. Składa się ona z trzech pól, wszyst-
kich formatu tekstowego. Na koniec można się upewnić, że
w bazie niema innych tablic.

background image

Dla początkujących

Podstawy MySQL

22

luty 2009

Dla początkujących

Podstawy MySQL

23

www.lpmagazine.org

Mając tak przygotowaną bazę danych mo-

żemy przejść do pisania skryptów potrafiących
ją wykorzystać.

Skrypty

pracujące na bazie danych

Przede wszystkim aby bazę można było wy-
korzystać należy wstawić do niej jakieś dane.
Można to zrobić zarówno za pomocą klien-
ta MySQL, w sposób podobny do tworzenia
bazy i tablic lub za pomocą przeglądarki in-
ternetowej. Zadanie to wykonamy za pomo-
cą dwóch plików. Jeden będzie zawierał for-
mularz do wprowadzania danych widoczny na
Listingu 4, drugi zaś funkcje operującą na ba-
zie danych. Aby ułatwić późniejsze modyfika-
cje i utrzymanie strony dobrym zwyczajem jest
umieszczanie wszystkich funkcji w jednym pli-
ku. Jeżeli ich ilość jest duża należy je rozbić w
logiczny sposób wynikający z zadań przez nie
wykonywanych.

W linijce drugiej dodane są wszystkie

funkcje znajdujące się w pliku lib.php. Znajdu-
je się on w tym samym katalogu co formularz.
Nic nie stoi na przeszkodzie aby plik ten znaj-
dował się w innym katalogu. Należy wówczas
uwzględnić to podając ścieżkę. W linii ósmej
rozpoczyna się formularz przyjmujący trzy
istotne dla nas informacje, adres, słowa kluczo-
we i opis. Formularz ten po naciśnięciu przyci-
sku Dodaj wywoła ponownie stronę na której
się znajduje. Wprowadzone dane zostaną jed-
nak przekazane do funkcji znajdującej się w li-
nii 15. W efekcie strona zostanie dodana i moż-
liwe będzie wykonanie kolejnego wpisu. Sama
funkcja pokazana na Listingu 5 znajduje się w
pliku lib.php.

Funkcja ta w linii 3 sprawdza czy został

podany jakikolwiek adres, jest to konieczne
gdyż jest wywoływana przy każdym wczy-
taniu strony. W linii 5 z początku i końca
poddanego adresu zostają obcięte znaki spa-
cji. Funkcja wykorzystana w linii 7 spraw-
dza czy tekst podany jako adres rzeczywi-
ście go przypomina. Linia 8 służy nawiąza-
niu połączenia z serwerem MySQL. Ważne
jest aby przed rozpoczęciem funkcji zdefi-
niować wymagane dla niej informacje, kom-
puter na którym znajduje się serwer, nazwę
użytkownika oraz jego hasło. Dane te będą
również wykorzystywane przy pozostałych
funkcjach. Podobnie jak przy korzystaniu z
wiersza poleceń konieczne jest również wy-
branie bazy dodanych na której skrypt ma
pracować. Funkcja w linii 9 wybiera bazę
która zostanie jej przekazana w formie para-
metru. Jeżeli wybranie bazy danych się nie
powiedzie wyświetlony zostanie komunikat.
Wszystkie parametry dla funkcji łączących

się z serwerem i wybierającej konkretną ba-
zę, można podać poprzez zmienne lub bez-
pośrednio w funkcji. W przypadku zmien-
nych wystarczy ich jednorazowa definicja,
aby wykorzystać je przy każdym wywoła-
niu funkcji. Jest to rozwiązanie dużo prak-
tyczniejsze niż każdorazowe wpisywanie
wszystkich danych. Linie 11 i 12 składają
się na sprawdzenie czy podany adres już ist-
nieje w bazie danych. Jeżeli zostanie on zna-
leziony zamiast dopisania go do bazy poja-

wi się odpowiedni komunikat. W linii 16
słowa podane jako kluczowe dla tematyki
strony są rozbijane do tablicy, po czym usu-
wane są powtórzenia tych samych słów. Ko-
lejna linijka 17 powoduje złożenie słów do
jednej zmiennej przy rozdzieleniu ich zna-
kiem spacji. W linii 19 podane przez użyt-
kownika dane zostają zapisane do bazy da-
nych. Wykonanie tego zapytania w linii po-
leceń, po podstawieniu zmiennych dało by
taki sam efekt.

Listing 1.

Tworzenie konta użytkownika MySQL

mysql>CREATE USER 'janko'@'localhost' identified by 'haslo';
mysql>GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'janko'@'localhost';

Listing 2.

Logowanie do MySQL

debian:~# mysql --user=janko -p

Listing 3.

Tworzenie bazy danych i tablicy

1: mysql>CREATE DATABASE katalog;
2: mysql>SHOW DATABASE;
3: mysql>USE katalog
4: mysql>CREATE TABLE `adres` (
-> `adres` text,
-> `slowa` text,
-> `opis` text);

5: mysql>SHOW TABLES;

Tabela 1.

Przydatne polecenia MySQL

Polecenie

Opis

CREATE DATABASE nazwa

Tworzy bazę danych o podanej nazwie

USE nazwa

Wybiera bazę danych do dalszej pracy

DROP DATABASE nazwa

Kasuje bazę danych o podanej nazwie

CREATE TABLE `nazwa` ()

Tworzy tablice o podanej nazwie i zdefiniowanych
polach

SHOW TABLES

Wyświetla listę tablic znajdujących się w używanej
bazie danych

DROP TABLE nazwa;

Kasuje wybraną tablice

SELECT * FROM nazwa_tabeli

Wyświetla całą zawartość tablicy o podanej nazwie

INSERT INTO nazwa_tabeli ( nazwy_kolumn)
VALUE (dane)

Wstawia dane do podanych kolumn

DELETE FROM nazwa_tabeli WHERE nazwa_kolum-
ny=wartosc

Usuwa wpis w tabeli

Tabela 2.

Popularne typy danych

Typ

Rozmiar

Opis

VARCHAR

Długość łańcucha + 1 bajt

Pole tekstowe o zmiennej długości, w MySQL do
wersji 5.0.3 maksymalnie 255 znaków

TINYTEXT

Długość łańcucha + 1 bajt

Maksymalnie 255 znaków

TEXT

Długość łańcucha + 2 bajty

Maksymalnie 65535 znaków

SMALLINT

2 bajty

Liczba z zakresu -32768 do 32767

INT

4 bajty

Liczba z zakresu -2147483648 do 2147483647

DATE

3 bajty

Data w formacie YYYY-MM-DD

background image

24

Dla początkujących

Podstawy MySQL

luty 2009

25

Dla początkujących

Podstawy MySQL

www.lpmagazine.org

Dodawanie wpisów jest jedynie środkiem

do celu jakim jest szybkie wyszukiwanie infor-
macji. Tak samo jak w przypadku dodawania
wpisów do wyszukiwania potrzebny jest for-
mularz, widoczny na Listingu 6 oraz funkcja
operująca na bazie danych.

Formularz jak i każdy fragment HTML

można umieścić w zmiennej za pomocą:

<<<

.

Wyraz po tym znaku stanowi zarówno początek
jak i znak końcowy informacji umieszczonej w
zmiennej. Umieszczenie formularza w zmien-
nej php ułatwia wstawienie go do dowolnej ilo-
ści stron w serwisie. Formularz po wykonaniu
przechodzi do innej strony w której znajduje się
wywołanie funkcji wyszukującej i wyświetlony
zostanie wynik wyszukiwania.

Listing 7 pokazuje wyszukiwanie i wy-

świetlanie zawartości tablicy.

W linii 3 wykonywane jest sprawdzenie

czy mamy co wyszukiwać. Jeżeli przekazana
została pusta zmienna funkcja kończy działa-
nie. Funkcja w linii 5 likwiduje spacje z po-
czątku i końca zapytania. Następna funkcja
w linii 6 powoduje rozbicie zmiennej na ta-
blice w której każda komórka zawiera kolej-
ny wyszukiwany wyraz. Rozbicie to następu-
je na podstawie podanego znaku podziału w
tym przypadku spacji. Kolejne linijki nawią-
zują połączenie z serwerem i wybierają ba-
zę danych. W linii 10 zerowana jest zmienna
służąca obliczeniu który adres w bazie najle-
piej odpowiada wyszukiwanym słowom. Pę-
tla rozpoczynająca się w linii 11 razem z li-
nią 15 służy obliczeniu w procentach która
ze stron w bazie najlepiej odpowiada wyszu-
kiwanym słowom. W linii 16 do zmiennej za-
pisane zostaje zapytanie do bazy danych. Po-
woduje ono wyszukanie wszystkich wpisów
w których znaleziono słowa kluczowe. Zo-
stają one również posortowane według ilo-
ści trafień. W linii 17 wykonane zostaje za-
pytanie do bazy danych. Pętla rozpoczynają-
ca się w linii 18 służy wyświetleniu pobra-
nych z bazy danych informacji. Linia 20 słu-
ży utworzeniu linku do strony która została
odnaleziona, do adresu należy dodać http:
//
przyjmując, iż przechowywane adresy nie
posiadają tej części. Adres z bazy danych jest
umieszczony na początku tablicy do której
wczytywane są kolejne wiersze tablicy. Rów-
nież w tej samej linii wyświetlana jest infor-
macja o trafności pokazanej strony. Pamięta-
jąc, że numerowanie zaczyna się od 0 widać,
iż pola tablicy mają zawartość zgodną z ko-
lejnością wpisania w zapytanie MySQL. Ko-
lejne linie od 22 do 31 sprawdzają czy stro-
na posiada opis który można wyświetlić, w
przeciwnym razie wyświetlone zostają jej
słowa kluczowe.

Skrypty administracyjne

Dając użytkownikom strony swobodną możli-
wość dodawania adresów, można kontrolować
i zmieniać wpisy za pomocą linii poleceń. In-
ną metodą jest utworzenie zabezpieczonej ha-
słem strony z narzędziami do zarządzania ba-
zą. Dzięki temu można w dużo szybszy spo-
sób przeglądać zawartość bazy, zmieniać i ka-
sować wpisy.

Stworzenie takiego zestawu narzędzi trze-

ba zacząć od zabezpieczenia dostępu. Podsta-
wą zabezpieczenia jest utworzenie dwóch stron
posługujących się sesją. W jednej z nich może
znajdować się hasło gdyż serwer nie przekazu-
je kodu php klientom. Inną możliwością jest

Listing 4.

Formularz przyjmujące dane do zapisu w bazie

1: <?php
2: include("lib.php");
3: ?>
4: <h3 align="center">
5: Na Tej stronie możliwe jest dodanie adresu strony do bazy.
6: </h3><br/>
7: <a href="index.php">Powrót do strony głównej</a>
8: <form action="dodanie.php" method="post">
9: <div>Pole adresu np: www.strona.pl</div><input type="text" size="50"
name="adres" value=""><br/>
10: <div>słowa kluczowe dla strony</div><input type="text" size="70"
name="temat" value=""><br/>
11: <div>opis strony</div><input type="text" size="200" name="opis"
value=""><br/>
12: <input type="submit" value="dodaj">
13: </form>
14: <?php
15: dodanie();
16: ?>

Listing 5.

Funkcja dodająca wpisy do bazy danych

1:

function

dodanie

()

2: {
3:

if

(

!empty

(

$_POST[

'adres'

]

))

4: {
5: $adres=trim

(

$_POST[

'adres'

]

)

;

6: $regx=

'/^((?:[a-z0-9]+)(?:(?:\.\w+)+))(?::(\d+))?(\/.+?)?(?:

\?(.+?))?(?:\#(.+?))?$/'

;

7:

if

(

preg_match

(

$regx,$adres,$match

))

{

8:: $sql_conn=mysql_connect

(

"$serwer","$uzytkownik","$haslo"

)

;

9: mysql_select_db

(

"$baza",$sql_conn

)

10:

or

die

(

"blad wyboru bazy"

)

;

11: $zapytanie=mysql_query

(

"

Select

adres

from

adres

where

adres=

'$adres'

"

)

;

12:

if

(

mysql_fetch_row

(

$zapytanie

))

echo "Taka strona już

istnieje w bazie";
13:

else

14: {
15: $temat=trim

(

$_POST[

'temat'

]

)

;

16: $unikatowe = array_unique

(

explode

(

" ", $temat

))

;

17: $slowa = implode

(

" ", $unikatowe

)

;

18: $opis=trim

(

$_POST[

'opis'

]

)

;

19: mysql_query

(

"

INSERT

INTO

adres

(

adres,slowa,opis

)

VALUE

(

'$

adres'

,

'$temat'

,

'$opis'

)

;"

)

;

20: }
21: }
22:

else

echo "zły adres";

23: }

background image

24

Dla początkujących

Podstawy MySQL

luty 2009

25

Dla początkujących

Podstawy MySQL

www.lpmagazine.org

umieszczenie hasła w bazie danych. Wykorzy-
stanie bazy danych ułatwia zadanie przy dużej
ilości kont. Posłużymy się jednak prostszą me-
todą uwierzytelniania, wykorzystującą plik lo-
gowania sesja.php oraz plik z narzędziami my-
sqladmin.php
.

Na Listingu 8 w linii 2 znajduje się

funkcja rozpoczynająca sesję. Musi ona za-
wsze znajdować się na początku pliku. W li-
nii 3 porównane zostają nazwa użytkowni-
ka oraz hasło ze zdefiniowanymi wartościa-
mi. W zależności od wyniku porównania od-
powiednia wartość logiczna zostanie przypi-
sana do zmiennej logowanie w tablicy

SES-

SION

. Zmienne znajdujące się w tej tablicy są

dostępne na wszystkich stronach otwartych w
ramach sesji. Jeżeli logowanie zakończy się
powodzeniem, użytkownik zostanie przekie-
rowany do zabezpieczonej strony. W linii 9
przed przekierowaniem ustawione zostają pa-
rametry chroniące przed zapisaniem danych
w przeglądarce. Uniemożliwia to późniejsze
wczytanie strony z pamięci podręcznej prze-
glądarki. W linii 10 następuje przekierowa-
nie przeglądarki. Jeżeli logowanie nie powio-
dło się użytkownik zobaczy jedynie formularz
umożliwiający logowanie.

Plik zawierający narzędzia administracyj-

ne musi się rozpoczynać od sprawdzenia czy
użytkownik jest zalogowany, Listing 9.

W linii 2 ponownie widać rozpoczęcie se-

sji, bez takiego zapisu sesja wywołana na po-
przedniej stronie uległaby zakończeniu. Je-
żeli użytkownik nie jest zalogowany zostanie
on przekierowany do strony logowania, zanim
wczytana zostanie dalsza część strony.

Narzędzia dostępne po zalogowaniu czę-

ściowo pokrywają się z opcjami jakie ma do
dyspozycji każdy użytkownik. Można je jed-
nak lepiej dostosować do zarządzania bazą.
Przydatną możliwością jest wyświetlanie za-
wartości bazy, widoczne na Listingu 10.

Taki sposób wyświetlenia bazy różni się

w znaczny sposób od metody dostępnej zwy-
kłym użytkownikom. Po naciśnięciu jednego
przycisku, skrypt wyświetla w tabeli całą za-
wartość bazy danych. W linii 1 widać warunek
do którego spełnienia wystarczy utworzyć for-
mularz z samym przyciskiem wysłania. Mu-
si on utworzyć zmienną

wyswietl

i wywołać

stronę na której znajduje się razem ze skryp-
tem. W linii 5 widać zapytanie do bazy danych
które powoduje wczytanie całej zawartości ta-
blicy. W linii 9 za pomocą pętli i funkcji dzie-
lącej odpowiedź bazy danych na wiersze, ca-
łość wyświetlana jest w formie kolejnych ele-
mentów tablicy. Po zamknięciu tablicy w li-
nii 14 likwidowana jest zmienna która urucho-
miła skrypt.

Kolejną czynnością przydatną przy utrzy-

mywaniu bazy danych jest kasowanie znajdu-
jących się w niej wpisów. Jak widać na Listin-
gu 11 jest to czynność dość prosta.

Skrypt ten przyjmuje z formularza zmien-

kasuj

zawierająca adres strony do usunię-

cia. Zmienną tą z tablicy zmiennych POST
przepisuje do zmiennej

usun

, po czym w linii 6

tworzy odpowiednie zapytanie do bazy danych.

Metoda taka ma pewien słaby punkt. Jeżeli ad-
res strony jest długi nie sposób wpisać go z pa-
mięci. Można w tym celu wyświetlić zawartość
całej tablicy i skopiować adres do formularza.
Bardziej eleganckim rozwiązaniem jest utwo-
rzenie tablicy z kluczem podstawowym zapew-
niającym jednoznaczną identyfikacje każdego
wpisu. Polecenie tworzące taką tablicę widać
na Listingu 12.

Listing 6.

Formularz przyjmujący dane do wyszukania

1: $form =<<< EOF
2:

<div align="center">

3:

<form action="znalezione.php" method="post">

4:

<input type="text" size="50" name="szukane" value=""><br/>

5:

<input type="submit" value="szukaj">

6:

</form>

7:

</div><hr>

8:EOF;

Listing 7.

Funkcja przeszukująca bezę danych

1:

function

szukanie

()

2: {
3:

if

(

!empty

(

$_POST[

'szukane'

]

))

4: {
5: $szukane=trim

(

$_POST[

'szukane'

]

)

;

6: $szukane=explode

(

" ", $szukane

)

;

7: $sql_conn=mysql_connect

(

"$serwer","$uzytkownik","$haslo"

)

;

8: mysql_select_db

(

"$baza",$sql_conn

)

9:

or

die

(

"blad wyboru bazy"

)

;

10: $hits=

'0'

;

11: foreach

(

$szukane

as

$slowo

)

12: {
13: $hits .= "+

(

slowa

LIKE

'%{$slowo}%'

)

";

14: }
15: $hits ="

(

$hits

)

/".count

(

$szukane

)

." * 100";

16: $sql ="

SELECT

adres, slowa, opis, $hits

as

hits

FROM

adres HAVING

hits > 0

ORDER BY

hits

DESC

, adres ASC";

17: $zapytanie=mysql_query

(

$sql

)

or

die

(

"Błąd zapytania"

)

;

18: while

(

$tab=mysql_fetch_row

(

$zapytanie

))

19: {
20: echo "<b><a href=http://$tab[0]>".$tab[0]."</a></b>";printf

(

"

%.0f", $tab[3]

)

;

21: echo

'%<br>'

;

22:

if

(

$tab[2]

)

23: {
24: echo $tab[2];
25: echo "<br>";
26: }
27:

else

28: {
29: echo $tab[1];
30: echo "<br>";
31: }
32: };
33: unset

(

$_POST[

'szukane'

]

)

;

34: }
35:}

background image

26

Dla początkujących

Podstawy MySQL

luty 2009

27

Dla początkujących

Podstawy MySQL

www.lpmagazine.org

W linii 2 tworzone jest pole liczbowe o

długości 11 znaków, które będzie automatycz-
nie zwiększane dla każdego nowego wpisu. Po-

le takie jest koniecznością przy relacyjnych ba-
zach danych. W naszym prostym przykładzie
możemy się jednak obyć bez takiego pola.

Ostatnim elementem potrzebnym do zarzą-

dzania bazą danych jest dodawanie elementów.
Do tego celu można wykorzystać skrypt prze-
znaczony dla wszystkich użytkowników z Li-
stingu 5.

Zarządzanie serwerem MySQL

Do zarządzania serwerem MySQL można wy-
korzystań narzędzie phpMyAdmin.

Jest ono dostępne pod adresem http://

www.phpmyadmin.net/home_page/index.php.
Sama instalacja sprowadza się do rozpako-
wania pobranego pliku i skierowania do nie-
go posiadanego serwera WWW. Po instalacji
należy zacząć od zabezpieczenia narzędzia
przed niepowołanym dostępem. Jeżeli do ser-
wera MySQL ma dostęp użytkownik root bez
hasła, główna strona zostanie wyświetlona z
jego uprawnieniami, co widać na Rysunku 1.
W takiej sytuacji trzeba wykorzystać zakładkę
Uprawnienia aby utworzyć hasła dla wszyst-
kich kont użytkowników. Po zabezpiecze-
niu hasłem domyślnie wykorzystanego kon-
ta niemożliwy stanie się dostęp do phpMyAd-
min
. Aby móc się zalogować należy najpierw
utworzyć plik config.inc.php. Najprostszą me-
todą jest zmienienie nazwy pliku config.sam-
ple.inc.php
znajdującego się w głównym ka-
talogu phpMyAdmin. Następnie należy edyto-
wać powstały plik, aby w linii 17 wstawić fra-
zę służącą szyfrowaniu. Po takiej podstawo-
wej konfiguracji możliwe powinno być zalo-
gowanie się do phpMyAdmin.

Po zalogowaniu się widoczne mogą być in-

formacje o braku modułów mcrypt i mbstring.
W pierwszym wypadku jest to biblioteka słu-
żąca szyfrowaniu, którą należy zainstalować.
W drugim przypadku jest to wbudowane roz-
szerzenie PHP które w trakcie kompilacji jest
domyślnie wyłączone. Aby je uruchomić nale-
ży przeprowadzić kompilacje z właściwym pa-
rametrem.

Pomimo powyżej wspomnianych infor-

macji o brakach można spokojnie wyko-
rzystać możliwości phpMyAdmin. Na stro-
nie domowej po zalogowaniu widoczne są
przede wszystkim informacje dotyczące ser-
wera MySQL oraz WWW. Możliwe jest rów-
nież w tym oknie utworzenie nowej bazy da-
nych. Korzystając z tej opcji możemy utwo-
rzyć bazę danych wykorzystaną w powyż-
szych przykładach. Trzeba pamiętać o usu-
nięciu już istniejącej bazy lub nadaniu ba-
zie nowej nazwy. Po jej utworzeniu poja-
wi się możliwość dodania tablic. Możemy w
tym miejscu utworzyć tablicę adres z 3 pola-
mi. Kolejne okno będzie wymagało podania
nazw 3 pól oraz rodzaju danych jakie mają
przechowywać. W prostym przypadku nie są

Listing 8.

Nawiązanie sesji i identyfikacja użytkownika

1: <?php
2: session_start

()

;

3:

if

((

$_POST[

'user'

]==

'user'

)

&&

(

$_POST[

'password'

]==

'hasło'

))

$_SESSION

[

'logowanie'

]=

'true'

;

4:

else

$_SESSION[

'logowanie'

]=

'false'

;

5:

if

(

$_SESSION[

'logowanie'

] ==

'true'

)

6: {
7: $przenies = "mysqladmin.php";
8: header

(

"HTTP/1.1"

)

;

9: header

(

"Cache-Control: no-cache, must-revalidate"

)

;

10: header

(

"Location: ".$przenies

)

;

11: }
12:

else

13: {
14: $form = <<< EOF
15: <form action="sesja.php" method="post">
16: <p>użytkownik:<input type="text" name="

user

"></p><br>

17: <p>hasło:<input type="

password

" name="

password

"></p>

18: <input type="submit" value="zaloguj">
19: </form>
20: EOF;
21: echo $form;
22: }
23: ?>

Listing 9.

Weryfikacja uprawnień użytkownika

1: <?php
2: session_start

()

;

3:

if

(

$_SESSION[

'logowanie'

]!=

'true'

)

4: {
5: $przenies = "sesja.php";
6: header

(

"Location: ".$przenies

)

;

7: }
8: ?>

Rysunek 1.

Główna strona phpMyAdmin

background image

26

Dla początkujących

Podstawy MySQL

luty 2009

27

Dla początkujących

Podstawy MySQL

www.lpmagazine.org

potrzebne żadne więcej informacje. Efekt do-
dania tablicy widoczny jest na Rysunku 2. Na
koniec wystarczy dodać wpisy do bazy da-
nych. Warto zwrócić uwagę, iż wszystkie wy-
konywane czynności są od razu pokazywane
w formie poleceń MySQL jakie należało by
wpisać w konsoli.

Inną możliwością wykonywania operacji

na bazach danych jest zakładka SQL. Po jej wy-
braniu możliwe jest wprowadzanie poleceń tak
samo jak w linii poleceń.

Tworzenie i wprowadzanie zmian w ba-

zie danych to tylko część możliwości php-
MyAdmin
. Warto zwrócić uwagę na zakład-
ki Status pokazującą ruch na serwerze. Za-
kładki Eksportuj i Importuj, bardzo ułatwia-
ją tworzenie kopii zapasowych i ich przy-
wracanie. Oczywiście pozostaje jeszcze za-
kładka Uprawnienia, pomagająca zarządzać
użytkownikami bazy danych. Opcja ta od-
daje nam do dyspozycji bardzo przejrzysty
interfejs pozwalający w prosty sposób zde-
finiować uprawnienia każdego użytkowni-
ka. Możliwe jest również ograniczenie za-
sobów jakie może wykorzystać konkretny
użytkownik.

Podsumowanie

Implementacja bazy danych nie jest czyn-
nością trudną, szczególnie przy wykorzysta-
niu narzędzia jakim jest phpMyAdmin. Naj-
więcej trudu i doświadczenia wymaga samo
projektowanie baz danych aby była ona zop-
tymalizowane pod kontem wydajności i roz-
miarów. Nabiera to szczególnego znaczenia
przy dużych projektach, gdy konieczne jest
przeszukiwanie wielu tabel zawierających
tysiące wpisów. Takie bazy danych choć
często niezauważane znajdują się w każdym
miejscu, począwszy od szpitali na giełdzie
kończąc. Artykuł pokazał jedynie prostszą
część implementacji składającą się na pro-
ces powstawania baz danych. Należy zda-
wać sobie sprawę, iż do stworzenia bazy da-
nych wymagany jest również proces projek-
towania. Od niego zależy użyteczność ba-
zy danych.

Listing 10.

Metoda wyświetlenia całej bazy danych

1:

if

(

isset

(

$_POST[

'wyswietl'

]

))

2: {
3: $sql_conn=mysql_connect

(

"$serwer","$uzytkownik","$haslo"

)

;

4: mysql_select_db

(

"$baza",$sql_conn

)

or

die

(

"błąd podczas wybierania

bazy"

)

;

5: $query=

(

'SELECT * FROM adres'

)

;

6: $wynik=mysql_query

(

$query

)

;

7: echo "<

TABLE

border=2>";

8: echo

'<tr align="center"><td>adres</td><td>slowa</td><td>opis</td></

tr>'

;

9: while

(

$wiersz=mysql_fetch_row

(

$wynik

))

10: {
11: echo "<tr><td>". $wiersz[0]."</td><td>".$wiersz[1]."</

td><td>".$wiersz[2] ."</td></tr>";

12: }
13: echo"</

TABLE

>";

14: unset

(

$_POST[

'wyswietl'

]

)

;

15: };

Listing 11.

Metoda kasowania wpisów w bazie danych

1:

if

(

isset

(

$_POST[

'kasuj'

]

))

2: {
3: $sql_conn=mysql_connect

(

"$serwer","$uzytkownik","$haslo"

)

;

4: mysql_select_db

(

"$baza",$sql_conn

)

or

die

(

"błąd podczas wybierania

bazy"

)

;

5: $usun=$_POST[

'kasuj'

];

6: $query="DELETE

FROM

`adres`

WHERE

`adres`=

'$usun'

";

7: mysql_query

(

$query

)

;

8: unset

(

$_POST[

'kasuj'

]

)

;

9:};

Listing 12.

Tworzenie tablicy z kluczem podstawowym

1: mysql>

CREATE TABLE

`adres`

(

2: -> `id' INT

(

11

)

NOT

NULL

AUTO_INCREMENT

PRIMARY

KEY

,

3: -> `adres` text,
4: -> `slowa` text,
5: -> `opis` text

)

;

Rysunek 2.

Widok polecenia tworzącego tablicę

Absolwent technikum policealnego na kie-
runku informatyki w Szczecinie. Obecnie
student 2 roku Europeistyki na Uniwersy-
tecie Szczecińskim. Od ponad roku pra-
cownik firmy świadczącej usługi interneto-
we w Gryfinie.
Kontakt z autorem:
sylwesterzdanowski@o2.pl

O autorze


Wyszukiwarka

Podobne podstrony:
2009 02 Podstawowa kinezyterapia u kobiet po mastektomii
zadania na egzaminie czerwcowym 2009, Elektrotechnika, PODSTAWY ELEKTROTECHNIKI, pytania
2009 01 Firewall w Linuksie [Poczatkujacy]
Egzamin maturalny z jęz włoskiego 2009 poziom podstawowy
02 podstawowe definicje
[W] Badania Operacyjne (2009 02 21) wykład
2009 02 17 test egzaminacyjny n Nieznany (2)
10 02 podstawy endokrynologi
2005 02 GRUB–program uruchomieniowy [Poczatkujacy]
2009-02-26, pedagogium, wykłady, Komunikacja społeczna
Ćwiczenie 1 (WEiP-2009), WPROWADZENIE DO EKONOMETRII I PROGNOZOWANIA (2009).
Podstawy MySQL'a
Politechnika Białostocka 02 Podstawowe pneumatyczne układy sterowania ręcznego
2009 02 16 test egzaminacyjny nr 3 Pomorski ZPN odpowiedzi A
02 Podstawy Marketingu 1 Students

więcej podobnych podstron