Strona główna

Tadeusz Koziemczyk


Pobieranie 38.49 Kb.
Data20.06.2016
Rozmiar38.49 Kb.


Przygotowanie zajęć lekcyjnych z informatyki dotyczących zastosowania MySQL i PHP w tworzeniu zaawansowanych stron internetowych

Autor:
Tadeusz Koziemczyk


kontakt: t.koziemczyk@oswiata.org.pl

Wstęp


Jeśli prowadzący zajęcia zamierza w sposób praktyczny zapoznać uczniów z zaawansowanymi technikami tworzenia stron internetowych to z pewnością będzie musiał poświęcić około 14 godzin lekcyjnych na języki SQL i PHP. Należy zwrócić uwagę, że przygotowanie takich lekcji od strony oprogramowania na komputerach uczniowskich, w porównaniu z innymi zagadnieniami, wymaga większego zaangażowania ze strony prowadzącego zajęcia. Również od strony dydaktycznej takie zajęcia nie są łatwe do przygotowania i poprowadzenia. Z pewnością łatwiej znaleźć właściwą koncepcje przeprowadzenia tych tematów na kółku informatycznym niż na zwykłych lekcjach. W korzystniejszej sytuacji są nauczyciele, którzy wcześniej mogli, w ramach przydziałowych godzin na lekcje informatyki, realizować SQL w Access’ie i składnię języka C. W takim przypadku zaprezentowane techniki posługiwania się SQL i PHP nie będą dużym zaskoczeniem, a prowadzący zajęcia będzie miał możliwość nawiązania do wcześniej realizowanych tematów.

Poniższy artykuł zawiera informacje o przygotowaniu środowiska na komputerach uczniowskich oraz merytoryczny materiał dotyczący podstawowych zapytań MySQL. Do każdej części dodane zostały propozycje ćwiczeń sprawdzających opanowanie materiału. Artykuł nie przedstawia treści związanych z posługiwaniem się językiem PHP, zakładając, że język ten został opanowany przez uczniów w sposób podstawowy. Natomiast obecnie prowadzący zajęcia ma za zadanie zachęcić uczniów do zastosowania tego języka do komunikacji z bazą danych oraz przedstawić możliwości uzyskania interaktywności stron w oparciu o PHP i MySQL.

Przygotowanie środowiska pracy na stacjach uczniowskich

Środowisko pracy do ćwiczeń z zaawansowanych technik stron internetowych powinno składać się:



  • z serwera WWW Apache, do pobrania z http://httpd.apache.org (2.0.49). Opis instalacji znajdują się w oficjalnej dokumentacji, którą można znaleźć pod adresem http://httpd.apache.org/docs-2.0/platform/windows.html.

  • z Interpretera PHP, do pobrania z http://php.net (4.3.4)

  • z serwer baz danych MySQL http://mysql.com (4.0.18)

  • z Edytora kodu PHP (i innych) Notepad++, można pobrać ze strony http://notepad-plus.sourceforge.net

Ostatnia opcja nie jest konieczna, stanowi tylko ułatwienie pisania składni języka PHP. Oczywiście podana wyżej propozycja może być w niektórych przypadkach uciążliwa i pracochłonna w konfiguracji. Dlatego też można przygotować środowisko pracy w prostszy sposób. Zainstalować oprogramowanie KRASNAL Serv 2.7 ze strony www.krasnal.tk. W skład KRASNAL Serv 2.7 wchodzą:

  • Apache 1.3.31

  • PHP 4.3.9 + SQLite

  • PHP 5.0.2

  • MySQL 3.23.58

  • ActivePerl 5.6.1.628

  • phpMyAdmin 2.6.2 pl2

  • Zend Optimizer 2.0.3

  • CesarFTP 0.99g

  • WebAlizer 2.1

  • Free SMTP Server

  • SQLiteManager 1.0.1

Wszystko to uzyskamy przy pomocy jednej instalacji, nie jest wymagana konfiguracja (tylko ustalenie katalogu na strony www).

Kolejna propozycja to VertrigoServ, można pobrać ze strony http://vertrigo.sourceforge.net/ Komponenty VertrigoServ:



  • Apache 2.0.55

  • PHP 5.1.2

  • MySQL 5.0.19

  • SQLite 3.3.4

  • PhpMyAdmin 2.8.0.1

  • ZendOptimizer 2.6.2

  • SQLiteManager 1.1.3

Tak jak i w poprzedniej propozycji wszystko to uzyskamy przy pomocy jednej instalacji, nie jest wymagana konfiguracja.

Ćwiczenie 1.

Jakie środowisko musi być zainstalowane na twoim komputerze oraz jakie procesy powinny być uruchomione aby mogły poprawnie funkcjonować strony internetowe wykonane w oparciu o technologię PHP i MySQL?

SQL - Structured Query Language

MySQL jest to darmowy systemem obsługi baz danych, licencja GPL (General Public License). Jest wykorzystywany do stworzenia serwera obsługującego bazy danych. MySQL jest jednym z najpopularniejszych interfejsów języka SQL

Do połączenia się z serwerem baz danych należy użyć odpowiedniego oprogramowania tzw. klienta lub języka skryptowego (umieszczanego na serwerach WWW), który posiada wbudowaną obsługę baz danych. Programem klienckim może być oprogramowanie dostarczane razem z pakietem MySQL. Można oczywiście korzystać z bazy danych przez połączenie wywoływane odpowiednim skryptem.

Zalecanym narzędziem do obsługi SQL, jest panel administracyjny do baz danych – phpMyAdmin (oczywiście jeśli usługodawca nam go oferuje). Połączenie z bazą MySQL można uzyskać z poziomu skryptów PHP lub Perl oraz kompilowanych CGI (możliwości te zależą od oprogramowania na serwerze).

Aby uzyskać połączenie z serwerem baz danych należy znać:

- adres domenowy lub adres IP

- nazwę użytkownika

- oraz hasło

Ćwiczenie 2. Jakie warunki muszą być spełnione aby można było wykonywać operacje w bazie danych?

Ćwiczenie 3. Wymień podstawowe narzędzie do obsługi bazy SQL z poziomu przeglądarki internetowej.

Łączenie się z bazą danych


Aby dokonać oczekiwanych operacji w bazie danych należy: połączyć się z bazą danych, wysłać do niej informacje. Informacje przesłane do bazy danych są w postaci zapytań. Aby nawiązać połączenie z serwerem MySQL należy użyć odpowiedniej funkcji języka PHP, wygląda to następująco:

$db = mysql_connect ("adres", "użytkownik", "hasło"); gdzie adres, użytkownik, hasło

są danymi wartościami otrzymanymi od usługodawcy hostingu.

Jeśli praca z bazą danych jest zakończona należy użyć funkcji: mysql_close ($db);

Ćwiczenie 4. Napisz skrypt PHP (config.php), który umożliwia połączenie z serwerem MySQL. W jaki sposób należy posłużyć się tym skryptem (podaj listę kroków)?

Tworzenie nowej bazy i wybieranie bazy


Do stworzenia nowej bazy używamy funkcji mysql_create_db(nazwa_bazy). Jeśli chcemy założyć bazę o nazwie „baza1” używamy polecenia mysql_create_db("baza1");. Po prawidłowym podłączeniu do serwera MySQL należy wskazać bazę, na której chce się pracować (ilość możliwych baz do utworzenia zależy od ustalenia z usługodawcą hostingu). Jeśli będziemy wykonywać operacje na określonej bazie musimy ją wybrać, używając funkcji mysql_select_db(nazwa_bazy);. Dla „bazy1” będzie następująca składnia: mysql_select_db("baza1");. Baza1 jest od tego momentu dostępna, jeśli została wcześniej utworzona. Aby wykonywać podstawowe operacje w bazie1 tworzymy zapytania. Tworzy się je stosując funkcję mysql_query(zapytanie_SQL);. W praktyce wygląda to następująco:

$zaptanie="miejsce na twoje zapytanie SQL";


$zrealizuj=mysql_query($zapytanie);

Funkcja mysql_query zwróci wartość TRUE, jeśli operacja zostanie zrealizowana, w przeciwnym wypadku - zwróci wartość FALSE.

Ćwiczenie 5. Napisz skrypt PHP, który tworzy bazę danych o nazwie absolwenci.

Tworzenie tabeli w bazie danych


Tabele służą do przechowywania informacji. W celu utworzenia tabeli należy zaplanować jej pola określające jakie dane będzie zawierał pojedynczy rekord. Aby utworzyć tabelę przechowującą dane o studentach projektujemy pola: imię, nazwisko, data_urodzenia. Przykładowy rekord będzie wyglądał następująco: 'Jan', 'Kowalski', '1968-09-10'.

Podane dane są różnego typu. imię i nazwisko to dane tekstowe, data_urodzenia to pole zawierające datę. Oczywiście można projektować pola reprezentuje dane liczbowe. Polecenie SQL CREATE TABLE służące do utworzenia tabeli jest następujące:


CREATE TABLE nazwa_tabeli struktura_tabeli;


nazwa_tabeli - oznacza nazwę definiowanej tabeli, struktura_tabeli - zawiera dokładną specyfikację poszczególnych pól tabeli. Przykładowe polecenie SQL dla utworzenia tabeli studenci

CREATE TABLE studenci (


imie VARCHAR(20),
nazwisko VARCHAR(40),
data_urodzenia DATE
);

Jak widać dokładny schematu składni SQL dla tego polecenia można przedstawić w następujący sposób:

CREATE TABLE nazwa_tabeli (
nazwa1 typ1,
nazwa2 typ2,
....................
nazwa typ,
PRIMARY KEY(nazwa_id)

);


PRIMARY KEY oznacza, że pole nazwa_id stanowi klucz główny, a klucz główny nie może się powtarzać

Oto kilka typów pól:

TINYINT - 1-bajtowe pole, przechowujące wartości całkowite bez znaku z przedziału od 0 do 255 lub ze znakiem z przedziału od -127 do 127
FLOAT(dokładność) - Liczba zmiennoprzecinkowa z precyzją wyrażaną liczbą bajtów. Dwie wartości akceptowane jako precyzja to 4 i 8. Użycie 4 tworzy liczbę zmiennoprzecinkową o pojedynczej precyzji, natomiast 8 - liczbę zmiennoprzecinkową o podwójnej precyzji. Szczegóły dotyczące tych dwóch typów danych opisują pola FLOAT i DOUBLE
FLOAT - 4-bajtowa liczba zmiennoprzecinkowa z zakresu od -1.402823466E+38 do -1.175494351E-38, 0 i 1.175494351E-38 do 3.402823466E+38
DOUBLE - 8-bajtowa liczba zmiennoprzecinkowa przechowująca wartości z zakresu od -1.7976931348623157E+308 do -2.2250738585072014E-308, 0, i 2.2250738585072014E-308 do 1.7976931348623157E+308
DECIMAL - Pole zmiennoprzecinkowe o takiej samej pojemności jak DOUBLE. Liczba, zamiast zostać zredukowana do postaci szesnastkowej, pamiętana jest w formacie znakowym
DATE - Data (bez czasu), wyświetlana w formacie RRRR-MM-DD. Akceptuje daty w różnych formatach z zakresu od 1000-01-01 do 9999-12-31
TIME - Czas mieszczący się w przedziale od -838:59:59 do 838:59:59
YEAR - Rok. Dozwolone wartości to przedział od 1901 do 2155 oraz wartość 0000. MySQL wyświetla wartość typu YEAR w formacie RRRR
CHAR Pole znakowe o stałej długości z zakresu od 1 do 255 bajtów. Po wstawieniu wartości puste miejsca pola CHAR są uzupełniane z prawej strony spacjami
VARCHAR - Pole znakowe o zmiennej długości z zakresu od 1 do 255 bajtów. Zajmowany jest jedynie taki obszar pamięci, jakiego wymaga wartość wstawiona w to pole
BLOB, TEXT - Kolumna binarna lub tekstowa o rozmiarze nie przekraczającym 65 535 bajtów
Ćwiczenie 6. W jaki sposób z poziomu PHP utworzyć w bazie danych absolwenci odpowiednią tabelę byli_uczniowie przechowującą dane o absolwentach? Jak uruchomić taki skrypt?
Podstawowe polecenia SQL dotyczące tabeli

Polecenie INSERT. wstawia pojedynczy rekord do tabeli.

INSERT INTO nazwa_tabeli VALUES (
wartosc_pola1,
wartosc_pola2,
wartosc_pola3,
.......................
wartosc_pola
);

Aby wstawić rekord do tabeli studenci należy posłużyć się poleceniem:

INSERT INTO studenci VALUES ('Jan', 'Kowalski', '1980-04-24');

Powyższe polecenie można ponowić w celu wstawienia nowego rekordu. Należy tylko zmodyfikować wartości pól dla nowego rekordu np.:

INSERT INTO studenci VALUES ('Aneta', 'Kaczmarek', '1982-05-16'); Jednak nie zawsze chcemy wstawić wartości dla wszystkich pól tabeli. Wtedy polecenie INSERT należy zmodyfikować. Po nazwie tabeli tworzymy listę pól, które będą wypełniane danymi. W takim przypadku zapytanie należy zredagować w następujący sposób:

INSERT INTO studenci (imie, nazwisko) VALUES ('Alicja', 'Tomala'); Jak łatwo zauważyć pole data_urodzenia zostało pominięte. W ten sposób można postąpić z dowolnym polem tabeli studenci. Schemat polecenia SQL dla tego przypadku wygląda następująco:

INSERT INTO nazwa_tabeli (
nazwa_pola1,
nazwa_pola2,
nazwa_pola3
)
VALUES (
wartosc_pola1,
wartosc_pola2,
nazwa_pola3
);

Tak więc jeśli chcemy wstawiać nowe dane do istniejącej tabeli używamy polecenia INSERT. Natomiast do modyfikacji danych będących w danej tabeli służy polecenie UPDATE. Jego składnia jest następująca:

UPDATE nazwa_tabeli SET
nazwa_pola1='zmodyfikowana_wartość1',
nazwa_pola2='zmodyfikowana_wartość2',
nazwa_pola3='zmodyfikowana_wartość3';

Tak więc polecenie UPDATE studenci SET imie='Janek'; zmodyfikuje wszystkie rekordy w taki sposób, że pole imie będzie miało wartość 'Janek'. Oczywiście jest to tylko przykład i należy to wziąć pod uwagę. Bardziej przydatną konstrukcją dotyczącą modyfikacji danych z określonej tabeli jest zastosowanie w poleceniu UPDATE klauzuli WHERE. Wtedy zostaną uaktualnione pola w danym rekordzie o ile dane z tego rekordu będą spełniać określony warunek.

UPDATE studenci SET imie='Andrzej' WHERE nazwisko='Kowalski';

Powyższe polecenie zmodyfikuje pole imie na ‘Andrzej’ w tych rekordach, w których pole nazwisko ma wartość ‘Kowalski’.

Ćwiczenie 7. W jaki sposób można wprowadzać dane do tabeli w bazie danych?

Ćwiczenie 8. Napisz kod strony internetowej, która umożliwi osobom mającym dostęp do Internetu wprowadzanie swoich danych do bazy danych.

Ćwiczenie 9. Napisz kod strony internetowej, która umożliwi osobom mającym dostęp do Internetu modyfikowanie swoich danych, które wcześniej wprowadzili do bazy danych.

Pobieranie danych z tabeli


Przechowywane dane w bazie danych mogą być pobierane z określonych tabel. Do tego celu służy zapytanie SELECT. Nie jest konieczne pobranie wszystkich rekordów w pełnym zestawie pól. Przykładowa składnia zapytania SELECT:

SELECT pole1, pole2, pole3 FROM nazwa_tabeli;

Jeśli interesuje nas pełny zestaw z danej tabeli wstawiamy zamiast wyszczególnionych pól znak „*”.

SELECT * FROM nazwa_tabeli;

Można też podać warunek, który spowoduje znalezienie interesujących nas rekordów:

SELECT * FROM nazwa_tabeli WHERE warunek;

W praktyce takie zapytania dla naszej tabeli studenci będą miały postać:

SELECT * FROM studenci;

SELECT imie, nazwisko FROM studenci;

SELECT * FROM studenci WHERE imie = ‘Andrzej’;

Po WHERE stosując warunki wyboru można je łączyć ze sobą stosując operatory OR oraz. AND. W warunkach wyboru można stosować następujące operatory porównań:


=

równy

>

większy

<

mniejszy

>=

większy równy

<=

mniejszy równy

<> lub (!=)

różny

like

porównanie łańcuchów

Dane z tabeli można pobrać w określonym porządku. Wskazanie kolumn, według których mają być posortowane dane podaje się po klauzuli ORDER BY oddzielone przecinkami. Jeśli chcemy uzyskać listę studentów rosnąco (ASC) według nazwiska i malejąco (DESC) według stypendium wpiszesz następujące polecenie:

SELECT * FROM studenci ORDER BY nazwisko ASC, stypendium DESC;

Można też wpływać na ilość pobieranych rekordów stosując klauzulę LIMIT.

SELECT * FROM studenci LIMIT 5;

Odpowiedzią na to zapytanie będzie pięć pierwszych rekordów z tabeli studenci.

Ćwiczenie 10. Napisz kod strony internetowej, która umożliwi osobom znającym login i hasło podgląd do danych z bazy danych.

Ćwiczenie 11. Napisz kod strony internetowej, która umożliwi osobom znającym login i hasło podgląd do wybranych danych z bazy danych.

Ćwiczenie 12. Napisz kod strony internetowej, która umożliwi osobom znającym login i hasło podgląd danych z bazy danych z możliwością sortowania ich wg trzech wybranych pól tabeli.

Ćwiczenie 13. Napisz kod strony internetowej, która umożliwi osobom znającym login i hasło podgląd danych z bazy danych z możliwością wyświetlania rekordów wg określonego klucza (np. tylko tych absolwentów, którzy ukończyli szkołę 5 lat temu, 2 lata temu).

Literatura:


MySQL


Autor: Leon Atkinson
Tłumaczenie: Jarosław Dobrzański, Tomasz Żmijewski
ISBN: 83-7361-170-3
Tytuł oryginału: Core MySQL
Format: B5, stron: 608

Bazy danych i MySQL. Od podstaw


Autorzy: Richard Stones, Neil Matthew
Tłumaczenie: Paweł Gonera
ISBN: 83-7197-728-X
Format: B5, stron: 560

PHP i MySQL. Dynamiczne strony WWW. Szybki start


Autor: Larry Ullman

Tłumaczenie: Michał Dadan (rozdz. 1-7), Piotr Pilch (rozdz. 8-13, dod. A - D)


ISBN: 83-7361-157-6
Format: B5, stron: 580

PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty. Wydanie trzecie


Autorzy: Luke Welling, Laura Thomson
Tłumaczenie: Paweł Gonera, Daniel Kaczmarek
ISBN: 83-7361-784-1
Format: B5, stron: 912

PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie III


Autor: Kevin Yank
Tłumaczenie: Sławomir Dzieniszewski, Paweł Janociński
ISBN: 83-7361-967-4
Format: B5, stron: 336



©snauka.pl 2016
wyślij wiadomość