Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałLaura Kot Został zmieniony 9 lat temu
1
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.
2
Tworzenie bazy danych Aby utworzyć bazę na lokalnym komputerze musimy zainstalować specjalne oprogramowanie np. XAMPP. Po zainstalowaniu włączamy Apache i MySQL.
3
Gdy już nasza baza będzie aktywna, klikamy w przycisk „Admin” i czekamy aż uruchomi się PhpMyAdmin.
4
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ą.
5
Tworzenie nowego użytkownika bazy
Klikamy w User accounts (użytkownicy) Dodajemy nowego użytkownika
6
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
7
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.
8
Dodawanie bazy i tabel Wpisujemy CREATE DATABASE nazwa_bazy;
Pozytywne dodanie nowej bazy
9
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);
10
Pojawiła nam się nowa tabela „filmy”
11
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 do , a bez znaku od 0 do
12
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.
13
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.
14
Połączenie z bazą danych i pobieranie danych
15
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.
16
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");
17
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.
18
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.
19
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.
20
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ą.
21
Jeżeli wszystko dobrze napisaliśmy otrzymamy taką tabelkę na naszej stronie.
22
Dodawanie nowych wierszy do naszej bazy w celu sprawdzenia czy wszystko działa.
Pierwszy wiersz Drugi wiersz
23
A oto efekt. Wszystko działa ;)
24
Dziękuję za uwagę. Dominik Siwek Zespół Szkół Ponadgimnazjalnych
w Ryglicach
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.