Krótki kurs MySQL

Maciej Piwowski
05.09.2015

W kursie nie będzie umieszczona teoria na temat bazy danych, ponieważ definicję tego słowa można znaleźć na niemal każdej tematycznej witrynie internetowej. Przejdźmy od razu do właściwej części kursu, mianowicie do rozdziału o łązceniu się z bazą danych.

I.Łączenie z bazą danych.

W tym rozdziale krótko opiszę jak łączyć się z bazą danych.
Aby działać na bazie danych czyli odczytywać, dodawać i edytować rekordy musisz się połączyć z bazą danych.

Pierwszą ważną rzeczą jest to, że łączenia z bazą danych nie musisz się uczyć na pamięć, ponieważ wystarczy stworzyć funkcję w PHP, a potem ją wywołać.

 

KOD
mysql_connect('serwer', 'user', 'hasło')
    or die('Brak połączenia z serwerem MySQL.');




Właśnie tak wygląda funkcja, która połączy nas z bazą danych. Jeśli nie uda się jej połączyć z serwerem MySQL wyświetli odpowiedni komunikat.
Jednak samo połączenie z bazą danych nas nie uszczęśliwia, należy jeszcze wybrać odpowiednią bazę danych. Tak wygląda funkcja, która pozwoli nam na taki wybór:

 

KOD
mysql_select_db('baza danych')
    or die('Błąd wyboru bazy danych.');




Funkcja działa na podobnej zasadzie jak ww. pozwala nam na wybór bazy danych, jeśli nie będzie możliwości takiego wyboru, wyświetli odpowiedni komunikat.
Tyle teorii, czas na praktyczną praktykę.


1.Tworzymy plik funkcje.php, a w nim funkcje np. mysql_polaczenie();
funkcje.php

KOD
mysql_polaczenie() {

mysql_connect('root', 'krasnal', 'pass1234')
    or die('Brak połączenia z serwerem MySQL.');

mysql_select_db('gra')
    or die('Błąd wyboru bazy danych.');

    }


Teraz należy w pliku index.php umieścić następujący kod:

KOD
include("funkcje.php");
mysql_polaczenie();



Teraz już potrafimy połączyć się z bazą danych i wybrać ją po połączeniu. Teraz nauczmy się działać na samej bazie MySQL.

II.Zapytania SQL

2a. SELECT

Polecenia select używamy do wyświetlenia zapisanych rekordów w bazie danych.

Przykładowe polecenie wygląda następująco:

 

KOD
Select * from `uzytkownicy`



Oznacza to mniej więcej wyszukaj wszystkie pola ( * - ten znak oznacza wszystkie) z tabeli użytkownicy. Takie rozwiązanie jest jednak niezbyt bezpieczne.

Opiszę teraz strukturę polecenia select:
SELECT - opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje.
FROM - nazwy tabel lub widoków.
WHERE - warunek.
GROUP BY - nazwy kolumn.
HAVING - warunek (grupowanie wybranych wierszy).
ORDER BY - nazwy kolumn lub pozycji kolumn.

Uwaga! Każde polecenie select musi posiadać klauzule SELECT oraz FROM reszta jest opcjonalna.

Teraz załóżmy, że stworzyliśmy tabelę 'użytkownicy' podam kilka przykładów:

SELECT * FROM użytkownicy - wyszukuje wszystkie rekordy
SELECT `login`, `punkty` FROM `uzytkownicy` - wyszukuje tylko pola login i punkty
SELECT `login`, `punkty` FROM `uzytkownicy` ORDER BY `login` ASC - to co wyżej tyle że układa nam to w kolejności alfabetycznej.
SELECT `login`, `punkty` FROM `uzytkownicy` WHERE `punkty` = '30' - wyszuka tylko użytkowników którzy mają 30 punktów
Uwaga! Klauzula ORDER BY jest dozwolona 1 i wyłącznie na końcu zapytania.

OPERATORY LOGICZNE W KLAUZULI WHERE

= - równa
<> - nie równa
> - wieksza niż
>= - wieksza lub równa
< - mniejsza niż
<= - mniejsza lub równa

Przykład

 

KOD
SELECT `login`, `punkty` FROM `uzytkownicy` WHERE `punkty` >= '30'



To spowoduje wyszukanie wszystkich rekordów większych lub równych 30 pkt.

Przyszedł czas na wykorzystanie zdobytych umiejętności w dokumencie PHP.
Aby wywołać coś do bazy trzeba użyć funkcji

 

KOD
mysql_query("zapytanie");



Dzięki temu nastąpi wysłanie zapytania do MySQL.
 

KOD
$query = mysql_query("SELECT `login`, `punkty` FROM `uzytkownicy` WHERE `punkty` >= '30'");
while($fetch = mysql_fetch_array($query))
{
echo $fetch['login'];
echo '
';
}



Powinny nam się teraz wyświetlić wszystkie loginy z punktami większymi lub równymi 30.
Jednak najpierw musicie posiadać tabelę 'uzytkownicy' i pola 'login'.

Zgłoś swój pomysł na artykuł

Więcej w tym dziale Zobacz wszystkie

Ważne: Użytkowanie Witryny oznacza zgodę na wykorzystywanie plików cookie. Szczegółowe informacje w Polityce prywatności.