Bazy danych w MySQL

Wcześniej czy później szukając pracy napotkacie się na powtarzające się pytanie "Czy miał pan kontakt z MySQL i językiem SQL?". Warto więc przyswoić podstawową wiedzę na ten temat. Gdy będziecie potrafili połączyć zapytania SQL z PHP (albo z innym językiem), to dostaniecie naprawdę mocne narzędzie, a każdy pracodawca doceni Wasze umiejętności. Język SQL jest językiem zapytań, który umożliwia Nam poruszanie się po bazach danych. Ci którzy mają swoje strony internetowe zapewne nie raz robili backup w bazie danych, a zapytania SQL nie są dla nich niczym nowym. A dla tych którzy nie mieli kontaktu z tym językiem od razu mówię, że nie warto czytać suchej teorii, tylko testować na konkretnych przykładach. Najlepiej stworzyć sobie jakąś nową bazę danych. Ja pokaże jak odczytać dane z serwera za pomocą PHP, ale równie dobrze można te zapytania wykonywać bezpośrednio w samym programie obsługującym bazy (czyli w tym przypadku w PhpMyAdmin).

Główne funkcje PHP obsługujące SQL:

  • mysql_connect – łączy z bazą danych,
  • mysql_pconnect – łączy trwale z bazą danych,
  • mysql_create_db – tworzy bazę danych,
  • mysql_select_db – wybiera bazę danych, zawsze po połączeniu trzeba wybrać bazę danych.
  • mysql_close – kończy połączenie z bazą danych,
  • mysql_query – wysyła zapytanie do bazy danych.

Przykład:
1) $res = mysql_query("INSET INTO uczniowie (imie, nazwisko, dziennik) VALUES ('Wacek', 'Kapusta', '2')");
2) $res = mysql_query("SELECT * FROM uczniowie
ORDER BY dziennik ASC");
3) $res = mysql_query("SELECT imie FROM uczniowie
WHERE nazwisko = 'Kapusta'");
4) $res = mysql_query("SELECT * FROM uczniowie
WHERE dziennik > 5");
//a oto popularny przykład na wyświetlanie porcji
//wyników, np z księgi gości
5) $res = mysql_query("SELECT * FROM księga
ORDER BY id ASC LIMIT $start, 10");
6) $res = mysql_query("SELECT * FROM uczniowie
WHERE dziennik BETWEEN 5 AND 20");
7) $res = mysql_query("SELECT * FROM uczniowie
WHERE imie LIKE '%ek' AND nazwisko LIKE '_apusta'");

Więcej znajdziecie na http://webhosting.pl

Zabieramy się do testów. Najpierw Tworzymy naszą bazę danych w Cpanelu użytkownika. Przypisujemy naszego użytkownika do naszej bazy danych i odpalamy PhpMyAdmin (darmowy skrypt do zarządzania bazami danych MySql).

Jak można łatwo zauważyć nasza baza danych jest pusta i posiada 0 tabel. Tworzymy tabele uczniowie z 4 polami, tak jak jest to w naszym kursie na http://webhosting.pl. Uzupełniamy dane zgodnie z zaleceniami oprócz numeru id zamiast char(2) trzeba dać int(2), bo autoinkrementacja działa tylko dla wartości int (na poniższym rysunku zaznaczone kolorem czerwonym). Inaczej kompilator PhpMyAdmin nie pozwoli utworzyć takiej tabeli. Po utworzeniu powinniście otrzymać taką strukturę.

Pamiętajcie także o kluczu podstawowym jakim w naszym przypadku jest id (zaznaczony kolorem zielonym), który przyda się przy rozbudowie naszej bazy danych.

Po utworzeniu naszej tabeli powinniśmy otrzymać coś takiego:

Przycisk zaznaczony kolorem czarnym umożliwia przeglądanie rekordów naszej tabeli. Przycisk niebieski służy do przeglądania struktury tabeli, a przycisk żółty służy do dodawania rekordów do naszej tabeli. kliknijmy i dopiszmy parę osób do naszej klasy.

Mając już dodanych kilka rekordów możemy zacząć łączyć się z naszą bazą i wyświetlić wszystkich uczniów. Dane które będziecie musieli zmienić u siebie w kodzie trzeba pobrać tak jak na pierwszym obrazku. Pamiętajcie, że gdy tworzycie użytkownika w Cpanelu trzeba go także powiązać z odpowiednią bazą danych.

Nasz kod połączy się z bazą wybierze tabele ucnziowie, po czym napisze komunikat, że nie ma takiej tabeli. Następnie połączy się z tabelą uczniowie i wyświetli wszystkie imiona i numery id. Zmieniając $row[1] na $row[2], skrypt wyświetliłby wszystkie nazwiska.

<?
$sql = mysql_connect('serwer.pl', 'domena.pl_użytkownik', 'hasloUżytkownika');
mysql_select_db("domena.pl_bazaDanych"); 
$res = mysql_query("SELECT * FROM ucnziowie");
echo mysql_error(); 
$res = mysql_query("SELECT * FROM uczniowie");
while($row =mysql_fetch_array($res, MYSQL_BOTH)) {
echo "<br/>ID to: ".$row[id]." a jego imie to: ".$row[1];
} 
mysql_close($sql); 
?>

Oto wynik tego skryptu:

Table 'domena.pl_bazaDanych.ucnziowie' doesn't exist
ID to: 1 a jego imie to: Marcin
ID to: 2 a jego imie to: Bodzio
ID to: 3 a jego imie to: Zuzia
ID to: 4 a jego imie to: Marcin