Stiahnite si aplikáciu teraz a 10 dní ju testujte zadarmo
Mena Vyberte jazyk Vyberte región

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.

CMS