1. diel - Úvod do databáz v PHP pre úplných začiatočníkov
Vitajte v prvom dieli seriálu tutoriálov o prácu s MySQL databázou v PHP pre úplných začiatočníkov a bez objektovo orientovaného programovania. MySQL je najpoužívanejší databázy, ktorá je zadarmo a máte ju k dispozícii snáď na každom webhostingu. V niekoľkých lekciách tu vytvoríme funkčné príklady a nakoniec tiež jednoduchý blog s editorom článkov.
Úvod
Seriál sa budem snažiť písať čo najjednoduchšie. Budem predpokladať aspoň minimálny základ syntaxe PHP. U MySQL databázy si v seriáli popíšeme nutné minimum, čiže tu vôbec žiadne znalosti nepotrebujete. Znalosti OOP tiež nepotrebujete.
Pre záujemcov sú tu samozrejme aj podrobnejšie seriály o MySQL databázu a podrobnejšie seriály o objektovo orientovanom programovaní. Tento seriál je vlastne taká veľmi odľahčená verzia, aby si databázy mohol v PHP skúsiť úplne každý.
Prečo použiť databázu
Ako používatelia nejakého webe chceme určite meniť jeho obsah (napísať článok, komentár, pridať tovar do eshopu, zamestnanca do firmy a podobne). Bolo by naozaj nepohodlné búšiť pre každý článok novú HTML stránku a tú nahrávať na server. V článkoch (produktoch, zamestnancoch ...) by sa navyše nedalo vyhľadávať a pri väčšom počte by to bolo veľmi neprehľadné. Oveľa lepší spôsob je naprogramovať si v PHP editor článkov, ktorý články ukladá do databázy a čitateľom je potom z databázy zobrazuje.
Možno vás napadlo, že na to vlastne ani nepotrebujeme nejakú databázu. Dáta by sme rovnako dobre mohli ukladať editorom do nejakých textových súborov alebo niečoho podobného. Určite by to nejako fungovalo, alebo nie?
Databáza nie je len úložisko dát. Jedná sa o veľmi sofistikovaný a odladený nástroj, ktorý za nás rieši veľa problémov a zároveň je extrémne jednoduchý na použitie. S databázou totiž komunikujeme jazykom SQL, ktorým sú v podstate ľudsky zrozumiteľné vety. S databázou si naozaj píšeme štýlom "vyber mi užívateľa, ktorého email je franta @ seznam.cz "alebo" vlož do používateľov nové sa menom Ján a emailom jan @ seznam.cz ". Prípadne môžeme napísať napríklad i toto:" vyber mi meno používateľa s emailom franta @ seznam.cz a jeho články, zoradené podľa dátumu vydania zostupne ". Budete prekvapení, ako jednoduché to je. Databáza za nás rieši ešte veľa ďalších problémov ohľadom ukladanie dát, ktoré by sme sami asi ťažko preklenuli. Tu je však nebudeme rozvádzať.
Databáza je teda taká čierna skrinka, ktorá za nás nejakým spôsobom rieši všetko okolo dát a my sa o to nemusíme starať a iba ju jednoducho používame. V dnešnej dobe sa už inak s dátami prakticky nepracuje.
Relačnej databázy
MySQL je tzv. Relačnej databázy. Tento pojem označuje databázu založenú na tabuľkách. Každá tabuľka obsahuje položky jedného typu. Môžeme mať teda tabuľku uzivatele, ďalšiu tabuľku clanky a ďalšie potrebné komentare. Tabuľky sa väčšinou pomenúvajú skôr v jednotnom čísle, na účely tohto kurzu mi ale prišlo logickejšie použiť plurál.
Databázovú tabuľku si môžeme predstaviť napríklad ako tabuľku v Exceli. Tabuľka uzivatele by mohla vyzerať asi takto:
Meno | priezvisko | dátum narodenia | počet článkov |
---|---|---|---|
Jan | Novák | 11.3.1984 | 17 |
Tomáš | márny | 1.2.1989 | 6 |
Josef | nový | 20.12.1972 | 9 |
Michaela | Slavíková | 14.8.1990 | 1 |
Slovo relačné označuje vzťah (anglicky relation), ktoré môžu byť medzi jednotlivými subjektmi v databáze, ale tým sa nebudeme zatiaľ zaoberať.
Potrebné nástroje
Začnime teda. Potrebovať budeme nakonfigurovaný webserver Apache a databázu MySQL. Predpokladám, že ste už niekedy spustili nejaký PHP skript a že prostredie teda máte k dispozícii, prípadne tu je návod na inštaláciu PHP a MySQL.
PhpMyAdmin
phpMyAdmin je najpoužívanejší prostredie pre prácu s MySQL databázou. MySQL s phpMyAdminom nájdete na každom webhostingu a ak sa niekedy dostanete k cudziemu projektu, je veľmi pravdepodobné, že bude postavený práve na týchto technológiách. K phpMyAdmin sa dostanete cez administračné rozhranie vášho webhostingu. Na localhost má obvykle adresu:
localhost/phpmyadmin/
Mali by ste vidieť webové rozhranie phpMyAdmin, ktoré vyzerá asi takto:
Vytvorenie databázy
Vytvorme si databázu, s ktorou budeme v seriáli pracovať. Zvyčajne nám bude pre jeden projekt (web) stačiť jedna databázy.
Tento krok za nás už na webhostingu takmer vždy urobili a dostaneme k dispozícii často práve jednu databázu, ktorá sa zvyčajne volá rovnako, ako náš účet (teda potrebné niečo ako mojewebovastrankacz1). Na localhost si ju musíme vytvoriť sami.
Klikneme v phpMyAdmin hore na záložku Databáza. Vyplníme názov databázy (napr. Databaze_pro_web). V databázach je zvykom pomenovávať položky bez diakritiky, malými písmenami as podtržítkovou notáciou. Snáď vám je jasné, prečo nie je diakritika dobrý nápad, za veľkými a malými písmenami je Linux, ktorý je rozlišuje a väčšina serverov práve na Linuxe beží. Porovnávanie nastavíme na utf8_czech_ci (pre slovenčinu utf8_slovak_ci), aby nám fungovala diakritika a radenie. Potvrdíme.
Ak dole v okne kliknete na "Konzola", môžete si všimnúť, že PhpMyAdmin na pozadí vygeneroval SQL dotaz z toho, čo sme naklikali a ten poslal databázu. Vyzeral asi nejako takto:
CREATE DATABASE databaze_pro_web CHARACTER SET utf8 COLLATE utf8_czech_ci;
Ale pamätať si ho nemusíte, databázy a tabuľky budeme vždy klikať cez phpMyAdmin. Databáze máme pripravenú, tvorbu tabuľky si necháme na budúci lekciu, Prvý databázová tabuľka a MySQL ovládače v PHP .