Spojenie PHP a MySQL v bluetronix CMS
V tomto tutoriále vytvoríš vlastnú databázovú tabuľku a spojíš ju so stránkou CMS. Na praktických príkladoch sa naučíš SQL príkazy INSERT, REPLACE, SELECT a UPDATE a zistíš, ako zobraziť hodnoty databázy na svojej stránke pomocou HTML zástupných symbolov.
Vytvoriť stránku príkladu
Na tento tutoriál najprv vytvoríš novú príkladovú stránku.
Napríklad:
PHP MySQL Príklad
Stránka môže byť najprv úplne prázdna.
Otvor stránku následne v bežnom HTML editore a pridaj akúkoľvek časť stránky. Tento HTML blok bude neskôr slúžiť ako šablóna pre údaje, ktoré sa načítajú z databázy.
Vytvoriť databázovú tabuľku
Predtým, ako môžeš uložiť údaje, potrebuješ vlastnú databázovú tabuľku.
Na to otvori:
Databáza → Nová tabuľka
Pre tento príklad použijeme tabuľku so stĺpcami ID, Dátum, Titulek, Popis a Obrázok.
ID obsahuje jedinečné ID záznamu. Dátum ukladá dátum a čas. Titulek obsahuje názov, Popis dlhší popis a Obrázok názov obrázka.
Názvy tabuliek, stĺpcov a premenných by sa mali vždy používať v angličtine v rámci vývojárskych tutoriálov.
Otvoriť PHP kód
Akonáhle je tabuľka vytvorená, vráť sa späť na svoju príkladovú stránku.
Otvor tam:
PHP Kód
Z tejto oblasti môžeš priamo pristupovať k databáze.
Uložiť údaje pomocou INSERT alebo REPLACE
V prvom príklade uložíš záznam do predtým vytvorenej databázovej tabuľky.
Najprv nastav potrebné PHP premenné.
Príklad:
$ID = 1;
$Date = date("Y-m-d H:i:s");
$Title = "My Title";
$Description = "My Description";
$Image = "my-image.jpg";
Tieto hodnoty môžeš následne uložiť pomocou MySQL Prepared Statement.
Pri prístupe k databáze by si mal vždy používať Prepared Statements. Týmto spôsobom sú hodnoty spracovávané oddelene od samotného SQL príkazu.
Príklad s REPLACE:
$stmt = $mysqli->prepare("REPLACE INTO ExampleTable (ID, `Date`, Title, Description, Image) VALUES (?, ?, ?, ?, ?)");
$stmt->bind_param("issss", $ID, $Date, $Title, $Description, $Image);
$stmt->execute();

Následne si stránku raz načítaj.
Potom otvori:
Databáza → Zobraziť
Tam by mal byť viditeľný novovytvorený záznam.
Rozdiel medzi INSERT a REPLACE
INSERT pridáva nový záznam.
Ak už existuje záznam s rovnakým jedinečným ID alebo rovnakým Primary Key, môže normálne INSERT spôsobiť chybu Duplicate-Key.
REPLACE môže byť použitý, ak treba nahradiť existujúci záznam so rovnakým jedinečným ID.
Pre testovacie príklady s pevným ID je REPLACE často praktickejší, pretože stránku je možné načítať viackrát.
Načítať údaje pomocou SELECT
V ďalšom kroku prečítaš uložený záznam z databázy.
Príklad:
$stmt = $mysqli->prepare("SELECT `Date`, Title, Description, Image FROM ExampleTable WHERE ID = ?");
$stmt->bind_param("i", $ID);
$stmt->execute();
$result = $stmt->get_result();
if($row = $result->fetch_assoc()) {
$Date = $row["Date"];
$Title = $row["Title"];
$Description = $row["Description"];
$Image = $row["Image"];
}
Načítané hodnoty budú následne v premenných $Date, $Title, $Description a $Image.
Spojiť databázu a $LayoutHTML
Globálna CMS premenná $LayoutHTML obsahuje počas procesu renderovania aktuálne vytvorené HTML stránky.
Týmto môžeš vlastné zástupné znaky v rámci HTML kódu nahradiť dátami z MySQL tabuľky.
Nastaviť zástupné symboly v HTML kóde
Znova otvori HTML kód svojej vzorovej stránky.
Obsahy predtým vloženého sekcie stránky môžeš teraz nahradiť vlastnými zástupnými znakmi.
Napríklad:
__MyDate__
__MyTitle__
__MyDescription__
__MyImage__
Jednoduchý príklad HTML:
<section>
<div class="container">
<img src="__MyImage__" alt="">
<small>__MyDate__</small>
<h2>__MyTitle__</h2>
<p>__MyDescription__</p>
</div>
</section>

Pre tento prvý MySQL príklad môžu byť existujúce prekladové značky najprv odstránené. Tým je ľahšie vidieť, ktoré obsahy sú priamo nahradené pomocou PHP a MySQL.
Použiť hodnoty databázy v rozložení
Akonáhle sú dáta načítané pomocou SELECT, nahradíš zástupné znaky v rámci $LayoutHTML.
Príklad:
$LayoutHTML = str_replace("__MyDate__",$Date,$LayoutHTML);
$LayoutHTML = str_replace("__MyTitle__",$Title,$LayoutHTML);
$LayoutHTML = str_replace("__MyDescription__",$Description,$LayoutHTML);
$LayoutHTML = str_replace("__MyImage__",$Image,$LayoutHTML);
Priebeh je teda:
MySQL databáza → SELECT → PHP premenné → str_replace() → $LayoutHTML → hotová webová stránka

Obsahy databázy sa týmto spôsobom priamo zobrazujú v existujúcom HTML rozložení.
Testovať zmeny priamo cez databázu
Otvori:
Databáza → Zobraziť
Následne upravte existujúci dátový záznam.
Napríklad môžeš zmeniť názov z My Title na New My Title.
Aj obrázok môžeš zmeniť pomocou príslušného BX-Image-Button.
Po uložení a opätovnom načítaní webovej stránky sa zmenené údaje zobrazia priamo v rozložení stránky.
Čím sa vytvára priame spojenie medzi:
Dáta → PHP → $LayoutHTML → webová stránka
Zmeniť údaje pomocou UPDATE
S pomocou UPDATE môžeš priamo cez PHP zmeniť existujúci dátový záznam.
Pri tom je stanovená podmienka, ktorý dátový záznam má byť zmenený.
Po vykonaní aktualizácie môžeš znova načítať údaje pomocou SELECT a potom ich zobrazit na svojej stránke cez $LayoutHTML.
Zhrnutie
S PHP a MySQL môžeš ukladať, čítať a meniť údaje v rámci bluetronix CMS.
INSERT alebo REPLACE ukladajú údaje, SELECT číta údaje a UPDATE mení existujúce záznamy.
Cez $LayoutHTML môžeš následne priamo vložiť načítané údaje do existujúcich HTML štruktúr.
Týmto spôsobom môžeš čistým spôsobom prepojiť obsah databázy s HTML rozložením CMS stránky.
Často kladené otázky
čo sa nás zákazníci často pýtajú
Čo potrebujem na tento PHP a MySQL tutoriál?
Potrebujete developerský prístup k bluetronix CMS. Navyše by si mal vedieť, ako funguje proces renderovania CMS stránok a akú úlohu má premenná $LayoutHTML.
Kde vytvorím novú databázovú tabuľku?
Otvorte v CMS sekciu Dáta → Nová tabuľka.
Ktoré stĺpce sú použité v príklade?
V tutoriále sa používajú stĺpce ID, Date, Title, Description a Image.
Prečo by som mal používať Prepared Statements?
Prepared Statements oddelujú odovzdané hodnoty od samotného SQL príkazu a sú preto určené na databázové prístupy.
Aký je rozdiel medzi INSERT a REPLACE?
INSERT pridáva nový dátový záznam. REPLACE môže nahradiť existujúci záznam so rovnakým unikátnym ID alebo rovnakým primárnym kľúčom.
Ako čítam údaje z databázy?
Na to použijete príkaz SELECT. Načítané hodnoty môžete potom uložiť napríklad do PHP premenných ako $Title, $Description alebo $Image.
Ako sa dostanú MySQL dáta do HTML stránky?
Najprv vložíš vlastné zástupné znaky do HTML kódu a následne ich nahradíš pomocou str_replace() v rámci $LayoutHTML načítanými hodnotami databázy.
Ako môžem skontrolovať, či funguje pripojenie medzi databázou a webovou stránkou?
Otvor Databáza → Zobraziť, zmeň existujúci záznam a potom znovu načítaj webovú stránku. Nové hodnoty by sa mali priamo zobraziť vo stránkovom dizajne.
Na čo sa používa UPDATE?
S UPDATE môžeš priamo upraviť už existujúci záznam pomocou PHP.
Môžem obrázky z databázy tiež použiť v stránkovom dizajne?
Áno. V príklade je hodnota obrázka uložená v premennej $Image a použitá cez vlastný zástupný znak ako __MyImage__ v $LayoutHTML.