Współpraca PHP i MySQL Wygodniejszym i wydajniejszym sposobem przechowywania i korzystania z danych zapisanych na serwerze jest współpraca z relacyjna.

Slides:



Advertisements
Podobne prezentacje
Procedury wyzwalane Procedura wyzwalana (ang. trigger) - stanowi kod użytkownika przechowywany wewnątrz bazy i uruchamiany w określonych sytuacjach np.
Advertisements

SQL INJECTION Wykorzystanie błędów w językach skryptowych
Bazy danych II Instrukcja SELECT Piotr Górczyński 25/08/2001.
MS Access 2000 Relacje Piotr Górczyński 2005.
PHP + MySQL część II.
Komponenty bazy danych Baza danych Jest to uporządkowany zbiór powiązanych ze sobą danych charakterystycznych dla pewnej klasy obiektów lub zdarzeń,
WPROWADZENIE DO BAZ DANYCH
MS Access 2003 Kwerendy Paweł Górczyński.
MS Access 2000 Kwerendy Piotr Górczyński 25/08/2001.
Bazy danych II Instrukcja INSERT Piotr Górczyński 25/08/2001.
25/08/ Bazy danych II Piotr Górczyński MS Access – Action Query.
MS Access 2000 Tworzenie bazy danych Piotr Górczyński 2005.
Obsługa bazy danych z poziomu phpMyAdmin
Bezpieczeństwo Procedury składowane Funkcje i Wyzwalacze
SQL-owskie szlaki górskie
Programowanie wizualne PW – LAB5 Wojciech Pieprzyca.
Język SQL (Structured Query Language) DDL (Data Definition Language)
PROJEKTOWANIE TABEL W PROGRAMIE: ACCESS
SIEĆ P2P 1. Definicja sieci równouprawnionej. To taka sieć, która składa się z komputerów o takim samym priorytecie ważności, a każdy z nich może pełnić.
MS ACCESS Kwerendy.
SQL – Structured Query Language (3)
Podstawy programowania
MySQL – ODBC - ACCESS.
Instrukcje: CREATE, INSERT, UPDATE, DELETE, DROP
Instrukcja USOSweb Wersja: Opracował: Sebastian Sieńko Moduł sprawdzianów.
dr hab. Ryszard Walkowiak prof. nadzw.
Użytkownicy i przywileje Sesja - przykład Błędy Komunikacja międzyskryptowa Wykład 83PD Technologie internetowe.
Bazy danych podstawowe pojęcia
Temat 19: Organizacja informacji w bazie danych – część 1.
SYSTEMY TELEINFORMATYCZNE
MySQL bazy danych dla witryny
Bazy danych.
Technologie internetowe II
SQL - Structured Query Language
Korespondencja seryjna
KWERENDY ćw. 3.
Tworzenie Aplikacji Internetowych dr Wojciech M. Gańcza 3.
Wybrane zagadnienia relacyjnych baz danych
WPROWADZENIE DO BAZ DANYCH
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Operacje edycyjne w bazie danych - kwerendy funkcjonalne Marzena Nowakowska Katedra Informatyki Stosowanej, WZiMK, PŚk.
Komendy SQL do pracy z tabelami i bazami
MICROSOFT Access TWORZENIE MAKR
Temat 12: Formularze.
SYSTEMY TELEINFORMATYCZNE
PL/SQL – dalsza wędrówka
Projektowanie stron WWW
Definiowanie kluczy w tabelach RBD
Temat 3: Okno dialogowe.
Autor: Damian Urbańczyk
Dokumenty wysyłkowe A.Ś..
Wprowadzenie do PHP SYSTEMY TELEINFORMATYCZNE Wykład 5 AiR 5r.
Temat 5: Instrukcje: print(), echo()
Jak wykonać prosty licznik odwiedzin strony internetowej?
Komendy SQL do pracy z danymi
Informatyka Stosowana – ROK II / III
Projektowanie postaci formularza:
BAZY DANYCH MS Access.
Wykład 3 Prowadzący: dr Paweł Drozda. Użytkownik bazy danych – osoba lub aplikacja, mająca dostęp do części danych zgromadzonych w bazie Uprawnienia –
Portal edukacyjny A.Ś. Tworzenie kwerend w programie Access.
Czym s ą i do czego słu żą ? Narzędzie analityczne arkusza kalkulacyjnego pozwalające filtrować, wybierać, przestawiać kolumny i wiersze z danymi w arkuszu.
„Filtry i funkcje bazodanowe w EXCELU”
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Moduł ECDL-AM5 Bazy danych, poziom zaawansowany Tabele, relacje.
Bazy danych. Baza danych (database) – magazyn danych – informacji powiązanych tematycznie, umożliwiający ich wyszukiwanie według zadanych kryteriów Baza.
Temat: Tworzenie bazy danych
Czym jest PHP? ● Językiem programowania przeznaczonym do tworzenia i generowania dynamicznych stron WWW. Działa po stronie serwera: Klient Żądanie strony.
INSTALACJA XAMPP Dr inż. Andrzej KIJ.
Strukturalny język zapytań SQL - historia
Zapis prezentacji:

Współpraca PHP i MySQL Wygodniejszym i wydajniejszym sposobem przechowywania i korzystania z danych zapisanych na serwerze jest współpraca z relacyjna bazą danych. Baza taka składa się z tabel powiązanych ze sobą relacjami, które pozwalają na logiczne łączenie danych z różnych tabel.

Tworzenie bazy danych Aby utworzyć bazę na lokalnym komputerze musimy zainstalować specjalne oprogramowanie np. XAMPP. Po zainstalowaniu włączamy Apache i MySQL.

Gdy już nasza baza będzie aktywna, klikamy w przycisk „Admin” i czekamy aż uruchomi się PhpMyAdmin.

PhpMyAdmin jest narzędziem, pozwalającym zarządzać bazą danych MySQL, która została utworzona na serwerze. Program ten zapewnia realizacje wszystkich podstawowych funkcji: tworzenie i usuwanie tabel, umieszczanie rekordów (także z przygotowanego wcześniej pliku) oraz administrację bazą.

Tworzenie nowego użytkownika bazy Klikamy w User accounts (użytkownicy) Dodajemy nowego użytkownika

Tak wygląda dodany użytkownik Uzupełniamy pola Imię Nazwa hostingu. Nasz to localhost Hasło Niżej nadajemy odpowiednie uprawnienia i potwierdzamy dodanie użytkownika. Tak wygląda dodany użytkownik

W celu polaczenia się z bazą danych należy stworzyć bazę, utworzyć w niej tabele oraz wprowadzić dane. PhpMyAdmin udostępnia zakładkę SQL, w której istnieje możliwość wprowadzenia ciągu instrukcji w języku MySQL, pozwalających za jednym razem utworzyć prostą strukturę bazy.

Dodawanie bazy i tabel Wpisujemy CREATE DATABASE nazwa_bazy; Pozytywne dodanie nowej bazy

Wprowadzanie danych do tabeli poprzez instrukcje w języku MySQL Nasza instrukcja CREATE TABLE filmy { ID INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (ID), Tytul VARCHAR(35), Rezyser VARCHAR(35), Czas INT); INSERT INTO filmy VALUES (NULL, „Pan Tadeusz”, „A. Wajda”, 207); INSERT INTO filmy VALUES (NULL, „Matrix”, „A. Wachowski”, 196); INSERT INTO filmy VALUES (NULL, „Shrek”, „A. Adamson”, 150);

Pojawiła nam się nowa tabela „filmy”

Opis instrukcji W pierwszej linijce nakazujemy utworzenie tabeli o podanej nazwie. Nawias rozpoczyna definicję jej struktury. Przyjrzyjmy się zatem poszczególnym polom: id - pole to będzie przechowywało liczbowy, jednoznaczny identyfikator rekordu. Dwa rekordy nie mogą posiadać tego samego ID. Pole to powinny posiadać w zasadzie wszystkie tabele, gdyż jest ono podstawą relacji oraz systemów zarządzania bazą. Parametry to: INT - typ liczbowy NOT NULL - pole nie może być puste AUTO_INCREMENT - MySQL automatycznie będzie dbał o nadawanie nowo dodawanym rekordom kolejnych ID. PRIMARY KEY - klucz główny określający przeznaczenie tego pola jako podstawy do identyfikacji rekordów. tytul - tutaj będziemy umieszczali tytuł filmu. rezyser - tutaj będziemy umieszczali imię i nazwisko reżysera. Parametry to: VARCHAR(35) - typ tekstowy. Maksymalna długość to 35 znaków. Czas - tutaj będziemy umieszczali długość filmu w minutach. Parametry to: INT - liczba czterobajtowa. Wartości od -2147483648 do 2147483647, a bez znaku od 0 do 4294967294.

Dodawanie rekordów: INSERT INTO filmy VALUES (NULL, "Pan Tadeusz", "A. Wajda", 207); INSERT INTO filmy VALUES (NULL, "Matrix", "A. Wachowski", 196); INSERT INTO filmy VALUES (NULL, "Shrek", "A.Adamson", 150); Aby dodać rekord do tabeli, należy wysłać zapytanie INSERT. Ma ono generalnie dwie możliwe składnie: INSERT INTO `tabela` VALUES('Wartość pola 1', 'Wartość pola 2', 'Wartość pola 3'); INSERT INTO `tabela` (`pole1`, `pole2`, `pole3`) VALUES('Wartość pola 1', 'Wartość pola 2', 'Wartość pola 3'); Oba powodują utworzenie nowego rekordu w podanej tabeli, lecz istnieje między nimi pewna różnica. W pierwszym zapytaniu musimy bezwzględnie podać wartości wszystkich pól nowego rekordu, jakie mamy zdefiniowane w strukturze tabeli, w identycznej kolejności. Drugie zapytanie pozwala nam w pierwszym z nawiasów wymienić listę pól, jakie nas interesują i dopiero potem podać ich wartości. W praktyce znacznie częściej używa się właśnie jego, gdyż nie trzeba podawać wartości pól ID, które nadawane są przez bazę automatycznie.

Mając bazę danych wypełnioną danymi, można przystąpić do wykonania połączenia z poziomu języka PHP. W przypadku instrukcji połączenia z bazą, wyboru bazy i wykonania zapytania warto wprowadzić dodatkową konstrukcję or die(), która w przypadku niepowodzenia pierwszej instrukcji wyprowadzi w oknie strony informacje tekstową i przerwie działanie skryptu.

Połączenie z bazą danych i pobieranie danych

Opis całego kodu $polaczenie=mysql_connect("localhost", "Dominik", "zadanie") Łączenie z bazą Tworzenie zmiennej połączenie Nazwa hostu Klient Hasło klienta or die("Brak połaczenia z serwerem MySQL"); Podczas niepowodzenia wyskakuje komunikat mysql_select_db("baza_filmow",$polaczenie) Ustawia aktywną bazę danych na serwerze określonym przez podany identyfikator połączenia. Kolejne wywołania funkcji mysql_query() będą dotyczyły aktywnej bazy danych. $zapytanie="Select * FROM filmy"; Utworzenie zmiennej zapytanie która wybiera wszystkie kolumny z tabeli filmy.

mysql_query() zwraca identyfikator wyniku (lub FALSE w przypadku niepowodzenia) jedynie dla zapytań typu SELECT, SHOW, EXPLAIN i DESCRIBE. Dla innych zapytań SQL mysql_query() zwraca TRUE lub FALSE informując czy zapytanie zakończyło się sukcesem czy też nie. Jeśli nie została zwrócona wartość FALSE to znaczy, że zapytanie było prawidłowe i może być wykonane przez serwer. Nie mówi natomiast nic o liczbie przetworzonych lub zwróconych wierszy. Jest również możliwe, że zapytanie zostanie wykonane poprawnie, nie przetwarzając lub zwracając żadnych wierszy. Tworzenie zmiennej wynik $wynik=mysql_query($zapytanie) or die("Wystąpiły problemy przy zapisywaniu danych");

while ($wiersz_danych = mysql_fetch_row($wynik)) { for ($i=0;$i<count($wiersz_danych); $i++) print $wiersz_danych[$i].". "; print"<br>"; } mysql_close($polaczenie); Istota tego kodu ukryta jest w funkcji mysql_fetch_row, która przy każdej iteracji pętli while wyciąga dany wiersz zapytania i zapisuje go w tablicy $wiersz_danych indeksowanej od zera, wypełnionej elementami rekordu wybranymi za pomocą zapytania. Czyli element o indeksie zero będzie równy wartości danego rekordu pola id, element o indeksie, jeden będzie równy wartości danego rekordu pola tytuł itd. Efektem powyższego kodu będzie wyświetlenie tabeli z wszystkimi kolumnami tzn. Tytuł, autor i czas filmu. mysql_fetch_row - To najczęściej używana funkcja czytająca jeden wiersz odpowiedzi. Z wiersza tego tworzona jest tablica, której kolejne elementy o kluczach 0, 1, 2... zawierają wartości z kolejnych kolumn tabeli SQL wybranych zapytaniem (w naszym przypadku $wynik). print $wiersz_danych[$i].". "; -Polecenie print wypisuje dane z tablicy wg pola ID (0,1,2,3…). mysql_close($polaczenie) - zamyka nie stałe połączenie do serwera MySQL, które zostało skojarzone z podanym identyfikatorem połączenia.

Efekt naszej pracy Jeżeli wszystko zrobiliśmy zgodnie z instrukcjami to na stronie powinna się wyświetlić cała tabela filmy z baza_filmów.

Pobieranie danych z bazy do tabeli W naszym kodzie pojawi się instrukcja mysql_fetch_assoc() array mysql_fetch_assoc ( resource $wynik ) Zwraca tablicę zawierającą pobrany wiersz, lub FALSE jeżeli nie ma więcej wierszy w wynik. Użycie mysql_fetch_assoc() jest równoznaczne z wywołaniem mysql_fetch_array() podając jako drugi argument MYSQL_ASSOC. Zwraca jedynie tablicę asocjacyjną. Początkowo tak właśnie zachowywała się funkcja mysql_fetch_array(). Jeśli oprócz indeksowania asocjacyjnego potrzebujesz także numeryczne, użyj funkcji mysql_fetch_array(). Jeżeli dwie lub więcej kolumn wyniku ma te same nazwy, ostatnia kolumna będzie brana pod uwagę. Dostęp do innych kolumn o tej samej nazwie jest możliwy przy użyciu funkcji mysql_fetch_array(), która wprowadzi również indeksowanie numeryczne.

Opis kodu na poprzednich stronach <?php $polaczenie=mysql_connect("localhost", "Dominik", "zadanie") or die("Brak połaczenia z serwerem MySQL"); mysql_select_db("baza_filmow",$polaczenie) or die("Bład wyboru bazy danych"); $zapytanie="Select * FROM filmy"; $wynik=mysql_query($zapytanie) or die("Wystąpiły problemy przy zapisywaniu danych"); echo "<table cellpadding=\"2\" border=1 width='400px'>"; echo "<tr> <th colspan='3' bgcolor='#00FFFF'>Filmy</th></tr>"; echo "<tr>"; echo "<td bgcolor='#AAF9FA' align='center'><b>Tytuł</b></td>"; echo "<td align='center'><b>Reżyser</b></td>"; echo "<td align='center'><b>Czas</b></td>"; echo "</tr>"; while($r = mysql_fetch_assoc($wynik)) { echo "<td align='center' bgcolor='#AAF9FA'>".$r['tutul']."</td>"; echo "<td align='center' nowrap='nowrap'>".$r['rezyser']."</td>"; echo "<td align='center'>".$r['czas']."</td>"; } echo "</table>"; mysql_close($polaczenie); ?> Opis kodu na poprzednich stronach Tworzenie prostej tabeli Wypisywanie danych za pomocą funkcji mysql_fech_assoc. Zamknięcie tabeli i zerwanie połączenia z bazą.

Jeżeli wszystko dobrze napisaliśmy otrzymamy taką tabelkę na naszej stronie.

Dodawanie nowych wierszy do naszej bazy w celu sprawdzenia czy wszystko działa. Pierwszy wiersz Drugi wiersz

A oto efekt. Wszystko działa ;)

Dziękuję za uwagę. Dominik Siwek Zespół Szkół Ponadgimnazjalnych w Ryglicach