Stáhněte si aplikaci nyní a vyzkoušejte zdarma na 10 dní
Měna Vybrat jazyk Vybrat oblast

Spojení PHP a MySQL v systému bluetronix CMS

V tomto tutoriálu vytvoříte vlastní databázovou tabulku a spojíte ji se stránkou CMS. Na praktických příkladech se seznámíte s SQL příkazy INSERT, REPLACE, SELECT a UPDATE a zjistíte, jak na své webové stránce zobrazit hodnoty databáze přes HTML zástupce.

Vytvoření stránky příkladu

Pro tento tutoriál nejprve vytvořte novou ukázkovou stránku.

Například:

PHP MySQL Příklad

Stránka může být zpočátku úplně prázdná.

Otevřete stránku v běžném HTML editoru a vložte jakoukoli část stránky. Tato HTML oblast bude později sloužit jako šablona pro data načtená z databáze.

Vytvoření databázové tabulky

Než budete moci uložit data, potřebujete vlastní databázovou tabulku.

Otevřete:

Databáze → Nová tabulka

Pro tento příklad použijeme tabulku se sloupci ID, Datum, Název, Popis a Obrázek.

ID obsahuje jedinečné ID záznamu. Datum ukládá datum a čas. Název obsahuje název, Popis delší text popisu a Obrázek název obrázku.

Názvy tabulek, sloupců a proměnných by měly být v rámci vývojářských tutoriálů vždy použity v angličtině.

Otevřít PHP kód

Jakmile je tabulka vytvořena, vraťte se zpět na svou ukázkovou stránku.

Otevřete tam:

PHP Kód

Z této oblasti můžete přímo přistupovat k databázi.

Uložit data pomocí INSERT nebo REPLACE

V prvním příkladu uložíte záznam do dříve vytvořené databázové tabulky.

Nejprve nastavte potřebné PHP proměnné.

Příklad:

$ID = 1;
$Date = date("Y-m-d H:i:s");
$Title = "My Title";
$Description = "My Description";
$Image = "my-image.jpg";

Tyto hodnoty můžeš následně uložit pomocí připraveného SQL dotazu MySQL.

Pro přístupy do databáze bys měl vždy používat připravené dotazy. Tímto se hodnoty zpracovávají odděleně od samotného SQL příkazu.

Pří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();

Poté stránku jednou načti.

Následně otevři:

Databáze → Zobrazit

Tam by měl být viditelný nový záznam.

Rozdíl mezi INSERT a REPLACE

INSERT přidává nový záznam.

Pokud již existuje záznam se stejným unikátním ID nebo primárním klíčem, může normální INSERT vyvolat chybu duplikátu klíče.

REPLACE lze použít, pokud má být nahrazen existující záznam se stejným unikátním ID.

Pro příklady testů se pevným ID je tedy REPLACE často praktičtější, protože můžeš stránku volat vícekrát.

Načíst data pomocí SELECT

V dalším kroku znovu přečteš uložený záznam z databáze.

Pří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čtené hodnoty se pak nacházejí v proměnných $Date, $Title, $Description a $Image.

Propojit databázi a $LayoutHTML

Globální CMS proměnná $LayoutHTML během procesu vykreslování obsahuje aktuálně generované HTML stránky.

Tímto můžeš vlastní zástupné symboly uvnitř HTML kódu nahradit daty z tabulky MySQL.

Nastavit zástupné znaky v HTML kódu

Znovu otevři HTML kód své příkladové stránky.

Obsah předem vložené části stránky nyní můžeš nahradit vlastními zástupnými symboly.

Například:

__MyDate__
__MyTitle__
__MyDescription__
__MyImage__

Jednoduchý HTML příklad:

<section>
   <div class="container">
      <img src="__MyImage__" alt="">
      <small>__MyDate__</small>
      <h2>__MyTitle__</h2>
      <p>__MyDescription__</p>
   </div>
</section>

Pro tento první příklad MySQL mohou být existující překladové značky nejprve odstraněny. Tím je snazší poznat, které obsahy budou přímo nahrazeny pomocí PHP a MySQL.

Vložit databázové hodnoty do layoutu

Jakmile jsou data načtena pomocí SELECT, nahradíš zástupné symboly uvnitř $LayoutHTML.

Pří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);

Takto probíhá:

MySQL-databáze → SELECT → PHP-proměnné → str_replace() → $LayoutHTML → hotová webová stránka

Obsah databáze je tímto zobrazen přímo uvnitř stávajícího HTML rozvržení.

Testovat změny přímo přes databázi

Otevři:

Databáze → Zobrazit

Poté uprav existující záznam.

Například můžeš změnit název z My Title na New My Title.

Také obrázek můžeš změnit pomocí příslušného BX-Image-Button.

Po uložení a znovu načtení webové stránky se změněná data okamžitě zobrazí v rozložení stránky.

Tímto se vytváří přímé spojení mezi:

Databáze → PHP → $LayoutHTML → webová stránka

Změnit data pomocí UPDATE

Pomocí UPDATE můžeš přímo měnit již existující záznam přes PHP.

Podle podmínky se určuje, který záznam má být změněn.

Po provedení aktualizace můžeš znovu načíst data pomocí SELECT a následně je zobrazit na své stránce přes $LayoutHTML.

Shrnutí

S PHP a MySQL můžeš v systému bluetronix CMS ukládat, načítat a měnit data.

INSERT nebo REPLACE ukládají data, SELECT čte data a UPDATE mění existující záznamy.

Přes $LayoutHTML můžeš načtená data přímo vložit do existujících HTML struktur.

Tímto způsobem lze čistě propojit obsah databáze s HTML rozložením stránky CMS.

Často kladené otázky

co se nás zákazníci často ptají

Co potřebuji pro tuto PHP- a MySQL-tutoriál?

Potřebuješ vývojářský přístup do systému bluetronix CMS. Také bys měl vědět, jak funguje proces rendering webových stránek v CMS a jakou roli hraje proměnná $LayoutHTML.

Kde vytvořím novou databázovou tabulku?

Otevři v CMS sekci Databáze → Nová tabulka.

Které sloupce jsou v příkladu použity?

V tutoriálu se používají sloupce ID, Date, Title, Description a Image.

Proč bych měl používat Prepared Statements?

Prepared Statements oddělují předávané hodnoty od skutečného SQL příkazu a jsou proto určeny pro přístupy k databázi.

Jaký je rozdíl mezi INSERT a REPLACE?

INSERT přidává nový záznam. REPLACE může nahradit existující záznam se stejným unikátním ID nebo primárním klíčem.

Jak načtu data z databáze?

K tomu použiješ příkaz SELECT. Načtené hodnoty můžeš následně například uložit do PHP proměnných jako $Title, $Description nebo $Image.

Jak se dostanou MySQL data do HTML stránky?

Nejprve umístíš vlastní zástupce v HTML kódu a poté je nahradíš pomocí str_replace() uvnitř $LayoutHTML načtenými hodnotami z databáze.

Jak mohu zkontrolovat, zda funguje připojení mezi databází a webovou stránkou?

Otevři Databáze → Zobrazit, změň existující záznam a poté znovu načti stránku. Nové hodnoty by se měly přímo zobrazit v rozvržení stránky.

K čemu se používá UPDATE?

Pomocí UPDATE můžeš přímo měnit již existující záznam přes PHP.

Mohu také používat obrázky z databáze v rozvržení stránky?

Ano. V příkladu se hodnota obrázku ukládá do proměnné $Image a používá se přes vlastní zástupce jako __MyImage__ v $LayoutHTML.

CMS