NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.

Lekce 1 - Úvod do databází v PHP pro úplné začátečníky

Vítejte v prvním dílu seriálu tutoriálů o práci s MySQL databází v PHP pro úplné začátečníky a bez objektově orientovaného programování. MySQL je nejpoužívanější databáze, která je zadarmo a máte ji k dispozici snad na každém webhostingu. V několika lekcích zde vytvoříme funkční příklady a nakonec také jednoduchý blog s editorem článků.

Databáze v PHP pro začátečníky
Databáze v PHP pro začátečníky
Databáze v PHP pro začátečníky

Úvod

Seriál se budu snažit psát co nejjednodušeji. Budu předpokládat alespoň minimální základy syntaxe PHP. U MySQL databáze si v seriálu popíšeme nutné minimum, čili zde vůbec žádné znalosti nepotřebujete. Znalosti OOP také nepotřebujete.

Pro zájemce jsou zde samozřejmě i podrobnější seriály o MySQL databázi a podrobnější seriály o objektově orientovaném programování. Tento seriál je vlastně taková velmi odlehčená verze, aby si databáze mohl v PHP zkusit úplně každý.

Proč použít databázi

Jako uživatelé nějakého webu chceme určitě měnit jeho obsah (napsat článek, komentář, přidat zboží do eshopu, zaměstnance do firmy a podobně). Bylo by opravdu nepohodlné bušit pro každý článek novou HTML stránku a tu nahrávat na server. V článcích (produktech, zaměstnancích a tak dále) by se navíc nedalo vyhledávat a při větším počtu by to bylo velmi nepřehledné. Mnohem lepší způsob je naprogramovat si v PHP editor článků, který články ukládá do databáze a čtenářům je poté z databáze zobrazuje.

Možná vás napadlo, že k tomu vlastně ani nepotřebujeme nějakou databázi. Data bychom stejně dobře mohli ukládat editorem do nějakých textových souborů nebo něčeho podobného. Určitě by to nějak fungovalo, nebo ne?

RDBMS - Databáze v PHP pro začátečníky

Databáze není jen úložiště dat. Jedná se o velmi sofistikovaný a odladěný nástroj, který za nás řeší spoustu problémů a zároveň je extrémně jednoduchý k použití. S databází totiž komunikujeme jazykem SQL, kterým jsou v podstatě lidsky srozumitelné věty. S databází si opravdu píšeme stylem "vyber mi uživatele, jehož email je franta@seznam.cz" nebo "vlož do uživatelů nového se jménem Jan a emailem jan@seznam.cz". Případně můžeme napsat třeba i toto: "vyber mi jméno uživatele s emailem franta@seznam.cz a jeho články, seřazené podle data vydání sestupně". Budete překvapeni, jak jednoduché to je. Databáze za nás řeší ještě spoustu dalších problémů ohledně ukládání dat, které bychom sami asi těžko překlenuli. Zde je však nebudeme rozvádět.

Databáze je tedy taková černá skříňka, která za nás nějakým způsobem řeší vše okolo dat a my se o to nemusíme starat a pouze ji jednoduše používáme. V dnešní době se již jinak s daty prakticky nepracuje.

Relační databáze

MySQL je tzv. relační databáze. Tento pojem označuje databázi založenou na tabulkách. Každá tabulka obsahuje položky jednoho typu. Můžeme mít tedy tabulku uzivatele, další tabulku clanky a další třeba komentare. Tabulky se většinou pojmenovávají spíše v jednotném čísle, pro účely tohoto kurzu mi ale přišlo logičtější použít plurál.

Databázovou tabulku si můžeme představit třeba jako tabulku v Excelu. Tabulka uzivatele by mohla vypadat asi takto:

Jméno Příjmení Datum narození Počet článků
Jan Novák 11.3.1984 17
Tomáš Marný 1.2.1989 6
Josef Nový 20.12.1972 9
Michaela Slavíková 14.8.1990 1

Položky (konkrétně zde uživatelé) ukládáme na jednotlivé řádky, sloupce pak označují atributy (vlastnosti, chcete-li), které položky mají. MySQL databáze je typovaná, to znamená, že každý sloupec má pevně stanovený datový typ (číslo, znak, krátký text, dlouhý text a tak dále) a může obsahovat hodnoty jen tohoto typu. Pokud chceme s relační databází rozumně pracovat, každý řádek v tabulce by měl být opatřený unikátním identifikátorem. U uživatelů by to mohlo být třeba rodné číslo, mnohem častěji se však používají identifikátory umělé a to tak, že uživatele prostě očíslujeme. K tomu se dostaneme později.

Slovo relační označuje vztahy (anglicky relation), které mohou být mezi entitami v databázi, ale tím se nebudeme zatím zabývat.

Potřebné nástroje

Začněme tedy. Potřebovat budeme nakonfigurovaný webserver Apache a databázi MySQL. Předpokládám, že jste již někdy spustili nějaký PHP skript a že prostředí tedy máte k dispozici, případně zde je návod na instalaci PHP a MySQL.

phpMyAdmin

phpMyAdmin je nejpoužívanější prostředí pro práci s MySQL databází. MySQL s phpMyAdminem naleznete na každém webhostingu a pokud se někdy dostanete k cizímu projektu, je velmi pravděpodobné, že bude postaven právě na těchto technologiích. K phpMyAdmin se dostanete přes administrační rozhraní vašeho webhostingu. Na localhostu má obvykle adresu:

localhost/phpmyadmin/

Měli byste vidět webové rozhraní phpMyAdmin, které vypadá asi takto:

phpMyAdmin - Databáze v PHP pro začátečníky

Vytvoření databáze

Vytvořme si databázi, se kterou budeme v seriálu pracovat. Obvykle nám bude pro jeden projekt (web) stačit jedna databáze.

Tento krok za nás již na webhostingu téměř vždy udělali a dostaneme k dispozici často právě jednu databázi, která se obvykle jmenuje stejně, jako náš účet (tedy třeba něco jako mojewebovastran­kacz1). Na localhostu si ji musíme vytvořit sami.

Klikněme v phpMyAdmin nahoře na záložku Databáze. Vyplníme název databáze (např. databaze_pro_web). V databázích je zvykem pojmenovávat položky bez diakritiky, malými písmeny a s podtržítkovou notací. Snad vám je jasné, proč není diakritika dobrý nápad, za velkými a malými písmeny je Linux, který je rozlišuje a většina serverů právě na Linuxu běží. Porovnávání nastavíme na utf8_czech_ci (pro slovenštinu utf8_slovak_ci), aby nám fungovala diakritika a řazení. Potvrdíme.

Vytvoření MySQL databáze - Databáze v PHP pro začátečníky

Pokud dole v okně klepnete na "Konzole", můžete si všimnout, že phpMyAdmin na pozadí vygeneroval SQL dotaz z toho, co jsme naklikali a ten poslal databázi. Vypadal asi nějak takto:

CREATE DATABASE databaze_pro_web CHARACTER SET utf8 COLLATE utf8_czech_ci;

Ale pamatovat si ho nemusíte, databáze a tabulky budeme vždy klikat přes phpMyAdmin.

V další lekci, První databázová tabulka a MySQL ovladače v PHP, si připravíme tabulku a vložíme do ní data.


 

Všechny články v sekci
Databáze v PHP pro začátečníky
Přeskočit článek
(nedoporučujeme)
První databázová tabulka a MySQL ovladače v PHP
Článek pro vás napsal David Hartinger
Avatar
Uživatelské hodnocení:
204 hlasů
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David se informační technologie naučil na Unicorn University - prestižní soukromé vysoké škole IT a ekonomie.
Aktivity