2009 02 Podstawy MySQL [Poczatkujacy]


Dla początkujących
Podstawy MySQL
Podstawy MySQL
Sylwester Zdanowski
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.
iezależnie od platformy praca z bazą danych na stronie. Aby je utworzyć należy wykonać polecenie My-
wygląda tak samo dzięki językowi programo- SQL, następnie w programie dodać użytkownika i zagwaran-
wania Structured Query Language. Przy czym tować mu uprawnienia.
NMySQL nie musi być kompatybilny z imple- Powyższe polecenia utworzą konto janko z hasłem ha-
mentacjami SQL firm Microsoft czy Oracle. Jedną z moż- slo. Użytkownik ten będzie miał wymienione uprawnienia
liwości wykorzystania MySQL jest połączenie go z serwe- na wszystkich bazach danych, nie będzie mógł jednak ich
rem WWW aby umożliwić użytkownikom stron interneto- tworzyć. Pozostaje jedynie opuścić MySQL i zalogować się
wych zapisywanie i przeszukiwanie danych. Tym właśnie ponownie jako utworzony użytkownik.
zajmiemy się w tym artykule, na przykładzie małego ka- Zakładając, że mamy do dyspozycji prawidłowo skonfi-
talogu stron internetowych który kiedyś stworzyłem http: gurowany serwer Apache możemy przejść do tworzenia stro-
//katalognauki.100webspace.net/. Przykład ten będzie skraj- ny wykorzystującej MySQL.
nie uproszczony. Wszystkie operacje będą wykonywane na
jednej tablicy, bez wykorzystania relacji. Tworzenie bazy danych i tablic
Po zalogowaniu się do MySQL z odpowiednimi uprawnie-
Co będzie potrzebne niami należy wykonań czynności widoczne na Listingu 3.
W dalszej części artykułu potrzebny będzie serwer Apache2 Podstawą jest utworzenie samej bazy danych, następnie moż-
współdziałający z bazą danych MySQL. Wystarczy w tym na zobaczyć wszystkie istniejące bazy danych. Linia 3 służy
celu zainstalować kilka pakietów, dla dystrybucji Debian bę- przejściu do wybranej bazy danych aby kolejne polecenia by-
dą to: apache2 php5 libapache2-mod-php5 mysql-server my- ły wykonywane na niej. Czas utworzyć tabele na której będą
sql-client php5-mysql. Alternatywą jest instalacja oprogra- operowały skrypty php. Składa się ona z trzech pól, wszyst-
mowania z wykorzystaniem zródeł. Po instalacji potrzebne kich formatu tekstowego. Na koniec można się upewnić, że
będzie konto z którego będą korzystać skrypty umieszczone w bazie niema innych tablic.
22 luty 2009
linux@software.com.pl
Dla początkujących
Podstawy MySQL
Mając tak przygotowaną bazę danych mo- się z serwerem i wybierającej konkretną ba- wi się odpowiedni komunikat. W linii 16
żemy przejść do pisania skryptów potrafiących zę, można podać poprzez zmienne lub bez- słowa podane jako kluczowe dla tematyki
ją wykorzystać. pośrednio w funkcji. W przypadku zmien- strony są rozbijane do tablicy, po czym usu-
nych wystarczy ich jednorazowa definicja, wane są powtórzenia tych samych słów. Ko-
Skrypty aby wykorzystać je przy każdym wywoła- lejna linijka 17 powoduje złożenie słów do
pracujące na bazie danych niu funkcji. Jest to rozwiązanie dużo prak- jednej zmiennej przy rozdzieleniu ich zna-
Przede wszystkim aby bazę można było wy- tyczniejsze niż każdorazowe wpisywanie kiem spacji. W linii 19 podane przez użyt-
korzystać należy wstawić do niej jakieś dane. wszystkich danych. Linie 11 i 12 składają kownika dane zostają zapisane do bazy da-
Można to zrobić zarówno za pomocą klien- się na sprawdzenie czy podany adres już ist- nych. Wykonanie tego zapytania w linii po-
ta MySQL, w sposób podobny do tworzenia nieje w bazie danych. Jeżeli zostanie on zna- leceń, po podstawieniu zmiennych dało by
bazy i tablic lub za pomocą przeglądarki in- leziony zamiast dopisania go do bazy poja- taki sam efekt.
ternetowej. Zadanie to wykonamy za pomo-
cą dwóch plików. Jeden będzie zawierał for- Listing 1. Tworzenie konta użytkownika MySQL
mularz do wprowadzania danych widoczny na
mysql>CREATE USER 'janko'@'localhost' identified by 'haslo';
Listingu 4, drugi zaś funkcje operującą na ba-
mysql>GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'janko'@'localhost';
zie danych. Aby ułatwić pózniejsze modyfika-
cje i utrzymanie strony dobrym zwyczajem jest
Listing 2. Logowanie do MySQL
umieszczanie wszystkich funkcji w jednym pli-
debian:~# mysql --user=janko -p
ku. Jeżeli ich ilość jest duża należy je rozbić w
logiczny sposób wynikający z zadań przez nie
Listing 3. Tworzenie bazy danych i tablicy
wykonywanych.
1: mysql>CREATE DATABASE katalog;
W linijce drugiej dodane są wszystkie
2: mysql>SHOW DATABASE;
funkcje znajdujące się w pliku lib.php. Znajdu-
3: mysql>USE katalog
je się on w tym samym katalogu co formularz.
Nic nie stoi na przeszkodzie aby plik ten znaj- 4: mysql>CREATE TABLE `adres` (
dował się w innym katalogu. Należy wówczas
-> `adres` text,
uwzględnić to podając ścieżkę. W linii ósmej
-> `slowa` text,
rozpoczyna się formularz przyjmujący trzy
-> `opis` text);
istotne dla nas informacje, adres, słowa kluczo-
5: mysql>SHOW TABLES;
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- Tabela 1. Przydatne polecenia MySQL
nak przekazane do funkcji znajdującej się w li-
Polecenie Opis
nii 15. W efekcie strona zostanie dodana i moż-
CREATE DATABASE nazwa
Tworzy bazę danych o podanej nazwie
liwe będzie wykonanie kolejnego wpisu. Sama
USE nazwa
Wybiera bazę danych do dalszej pracy
funkcja pokazana na Listingu 5 znajduje się w
DROP DATABASE nazwa
Kasuje bazę danych o podanej nazwie
pliku lib.php.
CREATE TABLE `nazwa` ()
Tworzy tablice o podanej nazwie i zdefiniowanych
Funkcja ta w linii 3 sprawdza czy został
polach
podany jakikolwiek adres, jest to konieczne
SHOW TABLES
Wyświetla listę tablic znajdujących się w używanej
gdyż jest wywoływana przy każdym wczy-
bazie danych
taniu strony. W linii 5 z początku i końca
poddanego adresu zostają obcięte znaki spa- DROP TABLE nazwa;
Kasuje wybraną tablice
cji. Funkcja wykorzystana w linii 7 spraw-
SELECT * FROM nazwa_tabeli
Wyświetla całą zawartość tablicy o podanej nazwie
dza czy tekst podany jako adres rzeczywi-
INSERT INTO nazwa_tabeli ( nazwy_kolumn)
Wstawia dane do podanych kolumn
ście go przypomina. Linia 8 służy nawiąza-
VALUE (dane)
niu połączenia z serwerem MySQL. Ważne
DELETE FROM nazwa_tabeli WHERE nazwa_kolum-
Usuwa wpis w tabeli
jest aby przed rozpoczęciem funkcji zdefi-
ny=wartosc
niować wymagane dla niej informacje, kom-
puter na którym znajduje się serwer, nazwę
Tabela 2. Popularne typy danych
użytkownika oraz jego hasło. Dane te będą
Typ Rozmiar Opis
również wykorzystywane przy pozostałych
VARCHAR
Długość łańcucha + 1 bajt Pole tekstowe o zmiennej długości, w MySQL do
funkcjach. Podobnie jak przy korzystaniu z
wersji 5.0.3 maksymalnie 255 znaków
wiersza poleceń konieczne jest również wy-
TINYTEXT
branie bazy dodanych na której skrypt ma Długość łańcucha + 1 bajt Maksymalnie 255 znaków
pracować. Funkcja w linii 9 wybiera bazę
TEXT
Długość łańcucha + 2 bajty Maksymalnie 65535 znaków
która zostanie jej przekazana w formie para-
SMALLINT
2 bajty Liczba z zakresu -32768 do 32767
metru. Jeżeli wybranie bazy danych się nie
INT
4 bajty Liczba z zakresu -2147483648 do 2147483647
powiedzie wyświetlony zostanie komunikat.
DATE
3 bajty Data w formacie YYYY-MM-DD
Wszystkie parametry dla funkcji łączących
www.lpmagazine.org 23
Dla początkujących
Podstawy MySQL
Dodawanie wpisów jest jedynie środkiem Wyraz po tym znaku stanowi zarówno początek Listing 7 pokazuje wyszukiwanie i wy-
do celu jakim jest szybkie wyszukiwanie infor- jak i znak końcowy informacji umieszczonej w świetlanie zawartości tablicy.
macji. Tak samo jak w przypadku dodawania zmiennej. Umieszczenie formularza w zmien- W linii 3 wykonywane jest sprawdzenie
wpisów do wyszukiwania potrzebny jest for- nej php ułatwia wstawienie go do dowolnej ilo- czy mamy co wyszukiwać. Jeżeli przekazana
mularz, widoczny na Listingu 6 oraz funkcja ści stron w serwisie. Formularz po wykonaniu została pusta zmienna funkcja kończy działa-
operująca na bazie danych. przechodzi do innej strony w której znajduje się nie. Funkcja w linii 5 likwiduje spacje z po-
Formularz jak i każdy fragment HTML wywołanie funkcji wyszukującej i wyświetlony czątku i końca zapytania. Następna funkcja
można umieścić w zmiennej za pomocą: <<<. zostanie wynik wyszukiwania. w linii 6 powoduje rozbicie zmiennej na ta-
blice w której każda komórka zawiera kolej-
Listing 4. Formularz przyjmujące dane do zapisu w bazie ny wyszukiwany wyraz. Rozbicie to następu-
1: 2: include("lib.php"); tym przypadku spacji. Kolejne linijki nawią-
3: ?> zują połączenie z serwerem i wybierają ba-
4:

zę danych. W linii 10 zerowana jest zmienna
5: Na Tej stronie możliwe jest dodanie adresu strony do bazy. służąca obliczeniu który adres w bazie najle-
6:


piej odpowiada wyszukiwanym słowom. Pę-
7: Powrót do strony głównej tla rozpoczynająca się w linii 11 razem z li-
8:
nią 15 służy obliczeniu w procentach która
9:
Pole adresu np: www.strona.pl
name="adres" value="">
kiwanym słowom. W linii 16 do zmiennej za-
10:
słowa kluczowe dla strony
name="temat" value="">
woduje ono wyszukanie wszystkich wpisów
11:
opis strony
value="">
stają one również posortowane według ilo-
12: ści trafień. W linii 17 wykonane zostaje za-
13:
pytanie do bazy danych. Pętla rozpoczynają-
14: 15: dodanie(); nych z bazy danych informacji. Linia 20 słu-
16: ?> ży utworzeniu linku do strony która została
odnaleziona, do adresu należy dodać http:
Listing 5. Funkcja dodająca wpisy do bazy danych // przyjmując, iż przechowywane adresy nie
1: function dodanie() posiadają tej części. Adres z bazy danych jest
2: { umieszczony na początku tablicy do której
3: if(!empty($_POST['adres'])) wczytywane są kolejne wiersze tablicy. Rów-
4: { nież w tej samej linii wyświetlana jest infor-
5: $adres=trim($_POST['adres']); macja o trafności pokazanej strony. Pamięta-
6: $regx='/^((?:[a-z0-9]+)(?:(?:\.\w+)+))(?::(\d+))?(\/.+?)?(?: jąc, że numerowanie zaczyna się od 0 widać,
\?(.+?))?(?:\#(.+?))?$/'; iż pola tablicy mają zawartość zgodną z ko-
7: if(preg_match($regx,$adres,$match)){ lejnością wpisania w zapytanie MySQL. Ko-
8:: $sql_conn=mysql_connect("$serwer","$uzytkownik","$haslo"); lejne linie od 22 do 31 sprawdzają czy stro-
9: mysql_select_db("$baza",$sql_conn) na posiada opis który można wyświetlić, w
10: or die ("blad wyboru bazy"); przeciwnym razie wyświetlone zostają jej
11: $zapytanie=mysql_query("Select adres from adres where słowa kluczowe.
adres='$adres'");
12: if (mysql_fetch_row($zapytanie)) echo "Taka strona już Skrypty administracyjne
istnieje w bazie"; Dając użytkownikom strony swobodną możli-
13: else wość dodawania adresów, można kontrolować
14: { i zmieniać wpisy za pomocą linii poleceń. In-
15: $temat=trim($_POST['temat']); ną metodą jest utworzenie zabezpieczonej ha-
16: $unikatowe = array_unique(explode(" ", $temat)); słem strony z narzędziami do zarządzania ba-
17: $slowa = implode(" ", $unikatowe); zą. Dzięki temu można w dużo szybszy spo-
18: $opis=trim($_POST['opis']); sób przeglądać zawartość bazy, zmieniać i ka-
19: mysql_query("INSERT INTO adres (adres,slowa,opis) VALUE('$ sować wpisy.
adres','$temat','$opis');"); Stworzenie takiego zestawu narzędzi trze-
20: } ba zacząć od zabezpieczenia dostępu. Podsta-
21: } wą zabezpieczenia jest utworzenie dwóch stron
22: else echo "zły adres"; posługujących się sesją. W jednej z nich może
23: } znajdować się hasło gdyż serwer nie przekazu-
je kodu php klientom. Inną możliwością jest
24 luty 2009
Dla początkujących
Podstawy MySQL
umieszczenie hasła w bazie danych. Wykorzy- Kolejną czynnością przydatną przy utrzy- Metoda taka ma pewien słaby punkt. Jeżeli ad-
stanie bazy danych ułatwia zadanie przy dużej mywaniu bazy danych jest kasowanie znajdu- res strony jest długi nie sposób wpisać go z pa-
ilości kont. Posłużymy się jednak prostszą me- jących się w niej wpisów. Jak widać na Listin- mięci. Można w tym celu wyświetlić zawartość
todą uwierzytelniania, wykorzystującą plik lo- gu 11 jest to czynność dość prosta. całej tablicy i skopiować adres do formularza.
gowania sesja.php oraz plik z narzędziami my- Skrypt ten przyjmuje z formularza zmien- Bardziej eleganckim rozwiązaniem jest utwo-
sqladmin.php. ną kasuj zawierająca adres strony do usunię- rzenie tablicy z kluczem podstawowym zapew-
Na Listingu 8 w linii 2 znajduje się cia. Zmienną tą z tablicy zmiennych POST niającym jednoznaczną identyfikacje każdego
funkcja rozpoczynająca sesję. Musi ona za- przepisuje do zmiennej usun, po czym w linii 6 wpisu. Polecenie tworzące taką tablicę widać
wsze znajdować się na początku pliku. W li- tworzy odpowiednie zapytanie do bazy danych. na Listingu 12.
nii 3 porównane zostają nazwa użytkowni-
ka oraz hasło ze zdefiniowanymi wartościa- Listing 6. Formularz przyjmujący dane do wyszukania
mi. W zależności od wyniku porównania od- 1: $form =<<< EOF
powiednia wartość logiczna zostanie przypi- 2:

sana do zmiennej logowanie w tablicy SES- 3:

SION. Zmienne znajdujące się w tej tablicy są 4:

dostępne na wszystkich stronach otwartych w 5:
ramach sesji. Jeżeli logowanie zakończy się 6:

powodzeniem, użytkownik zostanie przekie- 7:


rowany do zabezpieczonej strony. W linii 9 8:EOF;
przed przekierowaniem ustawione zostają pa-
rametry chroniące przed zapisaniem danych Listing 7. Funkcja przeszukująca bezę danych
w przeglądarce. Uniemożliwia to pózniejsze 1: function szukanie()
wczytanie strony z pamięci podręcznej prze- 2: {
glądarki. W linii 10 następuje przekierowa- 3: if(!empty($_POST['szukane']))
nie przeglądarki. Jeżeli logowanie nie powio- 4: {
dło się użytkownik zobaczy jedynie formularz 5: $szukane=trim($_POST['szukane']);
umożliwiający logowanie. 6: $szukane=explode(" ", $szukane);
Plik zawierający narzędzia administracyj- 7: $sql_conn=mysql_connect("$serwer","$uzytkownik","$haslo");
ne musi się rozpoczynać od sprawdzenia czy 8: mysql_select_db("$baza",$sql_conn)
użytkownik jest zalogowany, Listing 9. 9: or die ("blad wyboru bazy");
W linii 2 ponownie widać rozpoczęcie se- 10: $hits='0';
sji, bez takiego zapisu sesja wywołana na po- 11: foreach($szukane as $slowo)
przedniej stronie uległaby zakończeniu. Je- 12: {
żeli użytkownik nie jest zalogowany zostanie 13: $hits .= "+(slowa LIKE '%{$slowo}%')";
on przekierowany do strony logowania, zanim 14: }
wczytana zostanie dalsza część strony. 15: $hits ="($hits)/".count($szukane)." * 100";
Narzędzia dostępne po zalogowaniu czę- 16: $sql ="SELECT adres, slowa, opis, $hits as hits FROM adres HAVING
ściowo pokrywają się z opcjami jakie ma do hits > 0 ORDER BY hits DESC, adres ASC";
dyspozycji każdy użytkownik. Można je jed- 17: $zapytanie=mysql_query($sql) or die("Błąd zapytania");
nak lepiej dostosować do zarządzania bazą. 18: while($tab=mysql_fetch_row($zapytanie))
Przydatną możliwością jest wyświetlanie za- 19: {
wartości bazy, widoczne na Listingu 10. 20: echo "".$tab[0]."";printf("
Taki sposób wyświetlenia bazy różni się %.0f", $tab[3]);
w znaczny sposób od metody dostępnej zwy- 21: echo '%
';
kłym użytkownikom. Po naciśnięciu jednego 22: if ($tab[2])
przycisku, skrypt wyświetla w tabeli całą za- 23: {
wartość bazy danych. W linii 1 widać warunek 24: echo $tab[2];
do którego spełnienia wystarczy utworzyć for- 25: echo "
";
mularz z samym przyciskiem wysłania. Mu- 26: }
si on utworzyć zmienną wyswietl i wywołać 27: else
stronę na której znajduje się razem ze skryp- 28: {
tem. W linii 5 widać zapytanie do bazy danych 29: echo $tab[1];
które powoduje wczytanie całej zawartości ta- 30: echo "
";
blicy. W linii 9 za pomocą pętli i funkcji dzie- 31: }
lącej odpowiedz bazy danych na wiersze, ca- 32: };
łość wyświetlana jest w formie kolejnych ele- 33: unset($_POST['szukane']);
mentów tablicy. Po zamknięciu tablicy w li- 34: }
nii 14 likwidowana jest zmienna która urucho- 35:}
miła skrypt.
www.lpmagazine.org 25
Dla początkujących
Podstawy MySQL
W linii 2 tworzone jest pole liczbowe o le takie jest koniecznością przy relacyjnych ba- Ostatnim elementem potrzebnym do zarzą-
długości 11 znaków, które będzie automatycz- zach danych. W naszym prostym przykładzie dzania bazą danych jest dodawanie elementów.
nie zwiększane dla każdego nowego wpisu. Po- możemy się jednak obyć bez takiego pola. 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-
Rysunek 1. Główna strona phpMyAdmin
kich kont użytkowników. Po zabezpiecze-
niu hasłem domyślnie wykorzystanego kon-
Listing 8. Nawiązanie sesji i identyfikacja użytkownika ta niemożliwy stanie się dostęp do phpMyAd-
1: 2: session_start(); utworzyć plik config.inc.php. Najprostszą me-
3: if(($_POST['user']=='user')&&($_POST['password']=='hasło'))$_SESSION todą jest zmienienie nazwy pliku config.sam-
['logowanie']='true'; ple.inc.php znajdującego się w głównym ka-
4: else $_SESSION['logowanie']= 'false'; talogu phpMyAdmin. Następnie należy edyto-
5: if($_SESSION['logowanie'] == 'true') wać powstały plik, aby w linii 17 wstawić fra-
6: { zę służącą szyfrowaniu. Po takiej podstawo-
7: $przenies = "mysqladmin.php"; wej konfiguracji możliwe powinno być zalo-
8: header("HTTP/1.1"); gowanie się do phpMyAdmin.
9: header("Cache-Control: no-cache, must-revalidate"); Po zalogowaniu się widoczne mogą być in-
10: header("Location: ".$przenies); formacje o braku modułów mcrypt i mbstring.
11: } W pierwszym wypadku jest to biblioteka słu-
12: else żąca szyfrowaniu, którą należy zainstalować.
13: { W drugim przypadku jest to wbudowane roz-
14: $form = <<< EOF szerzenie PHP które w trakcie kompilacji jest
15:
domyślnie wyłączone. Aby je uruchomić nale-
16:

użytkownik:


ży przeprowadzić kompilacje z właściwym pa-
17:

hasło:

rametrem.
18: Pomimo powyżej wspomnianych infor-
19:
macji o brakach można spokojnie wyko-
20: EOF; rzystać możliwości phpMyAdmin. Na stro-
21: echo $form; nie domowej po zalogowaniu widoczne są
22: } przede wszystkim informacje dotyczące ser-
23: ?> wera MySQL oraz WWW. Możliwe jest rów-
nież w tym oknie utworzenie nowej bazy da-
Listing 9. Weryfikacja uprawnień użytkownika nych. Korzystając z tej opcji możemy utwo-
1: 2: session_start(); szych przykładach. Trzeba pamiętać o usu-
3: if ($_SESSION['logowanie']!='true') nięciu już istniejącej bazy lub nadaniu ba-
4: { zie nowej nazwy. Po jej utworzeniu poja-
5: $przenies = "sesja.php"; wi się możliwość dodania tablic. Możemy w
6: header("Location: ".$przenies); tym miejscu utworzyć tablicę adres z 3 pola-
7: } mi. Kolejne okno będzie wymagało podania
8: ?> nazw 3 pól oraz rodzaju danych jakie mają
przechowywać. W prostym przypadku nie są
26 luty 2009
Dla początkujących
Podstawy MySQL
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-
Rysunek 2. Widok polecenia tworzącego tablicę
kładka Uprawnienia, pomagająca zarządzać
użytkownikami bazy danych. Opcja ta od-
Listing 10. Metoda wyświetlenia całej bazy danych
daje nam do dyspozycji bardzo przejrzysty
interfejs pozwalający w prosty sposób zde- 1: if(isset($_POST['wyswietl']))
finiować uprawnienia każdego użytkowni- 2: {
ka. Możliwe jest również ograniczenie za- 3: $sql_conn=mysql_connect("$serwer","$uzytkownik","$haslo");
sobów jakie może wykorzystać konkretny 4: mysql_select_db("$baza",$sql_conn) or die ("błąd podczas wybierania
użytkownik. bazy");
5: $query=('SELECT * FROM adres');
Podsumowanie 6: $wynik=mysql_query($query);
Implementacja bazy danych nie jest czyn- 7: echo "";
nością trudną, szczególnie przy wykorzysta- 8: echo 'niu narzędzia jakim jest phpMyAdmin. Naj- tr>';
więcej trudu i doświadczenia wymaga samo 9: while($wiersz=mysql_fetch_row($wynik))
projektowanie baz danych aby była ona zop- 10: {
tymalizowane pod kontem wydajności i roz- 11: echo "";
przy dużych projektach, gdy konieczne jest 12: }
przeszukiwanie wielu tabel zawierających 13: echo"
adresslowaopis
". $wiersz[0]."".$wiersz[1]."miarów. Nabiera to szczególnego znaczenia td>".$wiersz[2] ."
";
tysiące wpisów. Takie bazy danych choć 14: unset($_POST['wyswietl']);
często niezauważane znajdują się w każdym 15: };
miejscu, począwszy od szpitali na giełdzie
kończąc. Artykuł pokazał jedynie prostszą Listing 11. Metoda kasowania wpisów w bazie danych
część implementacji składającą się na pro- 1: if(isset($_POST['kasuj']))
ces powstawania baz danych. Należy zda- 2: {
wać sobie sprawę, iż do stworzenia bazy da- 3: $sql_conn=mysql_connect("$serwer","$uzytkownik","$haslo");
nych wymagany jest również proces projek- 4: mysql_select_db("$baza",$sql_conn) or die ("błąd podczas wybierania
towania. Od niego zależy użyteczność ba- bazy");
zy danych. 5: $usun=$_POST['kasuj'];
6: $query="DELETE FROM `adres` WHERE `adres`='$usun'";
7: mysql_query($query);
8: unset($_POST['kasuj']);
O autorze
9:};
Absolwent technikum policealnego na kie-
runku informatyki w Szczecinie. Obecnie
Listing 12. Tworzenie tablicy z kluczem podstawowym
student 2 roku Europeistyki na Uniwersy-
1: mysql>CREATE TABLE `adres` (
tecie Szczecińskim. Od ponad roku pra-
2: -> `id' INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
cownik firmy świadczącej usługi interneto-
3: -> `adres` text,
we w Gryfinie.
4: -> `slowa` text,
Kontakt z autorem:
5: -> `opis` text);
sylwesterzdanowski@o2.pl
www.lpmagazine.org 27


Wyszukiwarka

Podobne podstrony:
2009 02 Podstawowa kinezyterapia u kobiet po mastektomii
2008 02 Multimedia dla początkujących użytkowników [Poczatkujacy]
02 Podstawy Marketingu 1 Students
02 Podstawy matematyczne algorytmów genetycznych
02 Podstawowe pojęcia metrologii
Egzamin 2009 poziom podstawowy
2009 02 Brain Dump
2009 02 Ze skanu do bazy danych – digitalizacja rysunków, wykresów i map [Grafika]
2009 01 Firewall w Linuksie [Poczatkujacy]
kopczewska (pliki z kodami) Rozdział 02 Podstawowe operacje
02 podstawy statyki zadanie
02 Podstawowe Zabiegi Resuscytacyjne & Automatyczna Defibrylacja Zewnętrzna (BLS&AED)

więcej podobnych podstron