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

PHP Databáze pro začátečníky Úvod do databází v PHP pro úplné začátečníky American English version English version

ONEbit hosting Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem. Vydávání, hosting a aktualizace umožňují jeho sponzoři.

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ů.

Ú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...) 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?

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:

Tabulka uživatelů v Excelu

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 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 vztah (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

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

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. Databázi máme připravenou, tvorbu tabulky si necháme na příští lekci, První databázová tabulka a MySQL ovladače v PHP.


 

 

Článek pro vás napsal David Čápka
Avatar
Jak se ti líbí článek?
41 hlasů
Autor pracuje jako softwarový architekt a pedagog na projektu ITnetwork.cz (a jeho zahraničních verzích). Velmi si váží svobody podnikání v naší zemi a věří, že když se člověk neštítí práce, tak dokáže úplně cokoli.
Unicorn College Autor sítě se informační technologie naučil na Unicorn College - prestižní soukromé vysoké škole IT a ekonomie.
Aktivity (5)

 

 

Komentáře
Zobrazit starší komentáře (4)

Avatar
Daniel Pokorný:26.2.2016 11:54

Já jsem to vyřešil tak,že jsem smazal nedávnou historii a cookies u localhost.Od té doby
nemám problém.

 
Odpovědět 26.2.2016 11:54
Avatar
Roland Němec:12.10.2016 17:28

Čaute! Měl bych dotaz. Na phpmyadmin mi nejde založit databázi, prej na to nemám oprávnění... A to jako proč??? :D

 
Odpovědět 12.10.2016 17:28
Avatar
gorri
Člen
Avatar
Odpovídá na Roland Němec
gorri:29.10.2016 22:46

Máš hosting nebo používáš localhost?

Odpovědět 29.10.2016 22:46
Když vím, tak poradím. Nikdo neví všechno :-)
Avatar
mkub
Redaktor
Avatar
Odpovídá na Roland Němec
mkub:1.11.2016 4:42

nie sme vsevedi... trosku nam rozpis svoj problem...

 
Odpovědět 1.11.2016 4:42
Avatar
EweN
Člen
Avatar
EweN:29.12.2017 16:51

Dobrý večer.
Mohl by mi někdo poradit jak se dostat přes to přihlašování u PHPMYADMIN? Vsechno vypada, ze je nainstalovane.
Přes odkaz co mam od onebit se na tu databazi dostanu. Ale nechapu jak se tam dostat pres localhosta. Kde dostanu prihlasovaci udaje? =) Dekuji =)

 
Odpovědět 29.12.2017 16:51
Avatar
Hando
Člen
Avatar
Odpovídá na EweN
Hando:29.12.2017 18:17

Uživatelské jméno 'root' a prázdné heslo nefungují? Měly by... Nepamatuji si, že by bylo potřeba něco přenastavovat, co se týče čisté instalace wamp/xampp.
Nicméně osobně doporučuji používat Adminer, za mě je rychlejší, přehlednější a práce s ním je celkově pohodlná. Ale to je na osobních preferencích.

 
Odpovědět 29.12.2017 18:17
Avatar
EweN
Člen
Avatar
Odpovídá na Hando
EweN:29.12.2017 18:46

root? to je pro všechny stejne? =)

 
Odpovědět 29.12.2017 18:46
Avatar
Odpovídá na EweN
Robert Ďurica:29.12.2017 22:23

Ako pise Hando tak ak to mas u seba na kompu tak to je default. Ak ovsem mysql instalujes/mas na servru tak tam si musis zvolit heslo a tento ucet je defaultne povoleny len z lokalhostu(ak sa sa dobre pametam). Co sa tyka providera tak od neho by si mal dostat prihlasovacie udaje nebo v administraci si uzivatela a db vytvaras sam (neviem ako to ma onebit). Inak pre praci z db pouzivam program HeidiSQL a som s nim maximalne spokojny. :-)

 
Odpovědět 29.12.2017 22:23
Avatar
EweN
Člen
Avatar
Odpovídá na Robert Ďurica
EweN:29.12.2017 22:29

Super.. dekuji za info .. az se k tomu po silvestru dostanu tak vse vyzkousim =)

 
Odpovědět 29.12.2017 22:29
Avatar
Hando
Člen
Avatar
Odpovídá na EweN
Hando:29.12.2017 23:27

Je zásadní rozdíl, jestli se bavíme o localhostu u tebe na pc, nebo o databázi, umístěné někde na komerčním hostingu/serveru.

Na localhostu by to mělo být skutečně 'root' a prázdné heslo. Víceméně si s databází můžeš dělat vše, co tě napadne.

U hostingu to je případ od případu, ale obecně mám zkušenosti takové, že v závislosti na tarifu/hostingu máš vymezený určitý počet databází (nebavíme se o tabulkách), které se spravují v administraci hostingu, kde se k nim zároveň dají např. nastavit přístupová práva pro specifické uživatele (např. účet pro správu aktualit nepotřebuje přístup k databázi fotogalerie apod.), vymezit rozsahy IP adres, odkud se můžeš připojit k phpmyadminu apod. Tam si můžeš nastavit přístupové údaje, které potom použiješ pro přístup přes nějaký nástroj pro práci s databází - většina hostingů zřejmě používá phpmyadmin.
Já to občas dělám tak, že vůbec na žádný phpmyadmin hostingu nelezu, ale nakopíruji si na hosting výše zmíněného adminera a veškerou práci (kromě vytváření databází) dělám přes něj. (Někomu se to ale může jevit nebezpečně, ale s opatrností tam zvýšené riziko nevidím.)
Možností je plno. :)

Editováno 29.12.2017 23:29
 
Odpovědět  +2 29.12.2017 23:27
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 14. Zobrazit vše