PHP ja MySQL bluetronix CMS:ssä yhdistäminen
Tässä oppaassa luot oman tietokantataulun ja yhdistät sen CMS-sivuun. Käytännön esimerkkien avulla opit SQL-komennot INSERT, REPLACE, SELECT ja UPDATE sekä saat tietää, kuinka näytät tietokanta-arvot HTML-paikkamerkkien kautta verkkosivustollasi.
Esimerkkisivun luominen
Tässä oppaassa aloitat ensin luomalla uuden esimerkkisivun.
Esimerkiksi:
PHP MySQL Esimerkki
Sivu voi aluksi olla täysin tyhjää.
Avaa sivu sen jälkeen normaalissa HTML-editorissa ja lisää haluamasi osio. Tämä HTML-alue toimii myöhemmin mallina tiedoille, jotka ladataan tietokannasta.
Tietokantataulun luominen
Ennen kuin voit tallentaa tietoja, tarvitset oman tietokantataulun.
Avaa tämä varten:
Tietokanta → Uusi taulu
Tässä esimerkissä käytämme taulua, jossa on sarakkeet ID, Päivämäärä, Otsikko, Kuvaus ja Kuva.
ID sisältää tietueen ainutlaatuisen ID:n. Päivämäärä tallentaa päivämäärän ja ajan. Otsikko sisältää otsikon, Kuvaus pidemmän kuvaustekstin ja Kuva kuvan nimen.
Taulukoiden, sarakkeiden ja muuttujien nimet tulisi aina käyttää englanniksi kehittäjäoppaan sisällä.
Avaa PHP-koodi
Kun taulu on luotu, palaat takaisin esimerkkisivullesi.
Avaa siellä:
PHP-koodi
Tämän alueen kautta voit suoraan käyttää tietokantaa.
Tallenna tiedot INSERT- tai REPLACE-komennolla
Ensimmäisessä esimerkissä tallennat tietueen aiemmin luotuun tietokantatauluun.
Aloita asettamalla tarvittavat PHP-muuttujat.
Esimerkki:
$ID = 1;
$Date = date("Y-m-d H:i:s");
$Title = "My Title";
$Description = "My Description";
$Image = "my-image.jpg";
Nämä arvot voit tallentaa myöhemmin MySQL Prepared Statementilla.
Tietokantayhteyksissä tulisi aina käyttää Prepared Statementeja. Näin arvot käsitellään erillään varsinaisesta SQL-komennosta.
Esimerkki REPLACE:llä:
$stmt = $mysqli->prepare("REPLACE INTO ExampleTable (ID, `Date`, Title, Description, Image) VALUES (?, ?, ?, ?, ?)");
$stmt->bind_param("issss", $ID, $Date, $Title, $Description, $Image);
$stmt->execute();

Käynnistä sivu sen jälkeen kerran.
Avaa sitten:
Tietokanta → Näytä
Siellä uuden luodun tietueen pitäisi olla näkyvissä.
Ero INSERTin ja REPLACE:n välillä
INSERT lisää uuden tietueen.
Jos tietue, jolla on sama yksilöivä ID tai sama pääavain, jo olemassa, voi normaali INSERT aiheuttaa Duplicate-Key-virheen.
REPLACE voidaan käyttää, jos olemassa oleva tietue, jossa on sama yksilöivä ID, halutaan korvata.
Kiinteällä ID:llä testiesimerkkejä varten REPLACE on siksi usein käytännöllisempi, koska sivua voidaan kutsua useita kertoja.
Lue tiedot SELECT-komennolla
Seuraavassa vaiheessa luet tallennetun tietueen takaisin tietokannasta.
Esimerkki:
$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"];
}
Luetut arvot löytyvät sitten muuttujista $Date, $Title, $Description ja $Image.
Yhdistä tietokanta ja $LayoutHTML
Globaalimuuttuja $LayoutHTML sisältää renderöintiprosessin aikana luodun HTML:n sivusta.
Näin voit korvata omat paikkamerkit HTML-koodissa tiedoilla MySQL-taulukosta.
Aseta paikkamerkit HTML-koodiin
Avaa jälleen esimerkkisivusi HTML-koodi.
Voit nyt korvata aikaisemmin lisätyn sivuosion sisällöt omilla paikkamerkeilläsi.
Esimerkiksi:
__MyDate__
__MyTitle__
__MyDescription__
__MyImage__
Yksinkertaistettu HTML-esimerkki:
<section>
<div class="container">
<img src="__MyImage__" alt="">
<small>__MyDate__</small>
<h2>__MyTitle__</h2>
<p>__MyDescription__</p>
</div>
</section>

Tässä ensimmäisessä MySQL-esimerkissä voit aluksi poistaa olemassa olevat käännösmerkit. Näin on helpompi nähdä, mitkä sisällöt korvataan suoraan PHP:llä ja MySQL:llä.
Käytä tietokannan arvoja ulkoasussa
Kun tiedot on ladattu SELECT -komennolla, korvaat paikkamerkit $LayoutHTML -muuttujassa.
Esimerkki:
$LayoutHTML = str_replace("__MyDate__",$Date,$LayoutHTML);
$LayoutHTML = str_replace("__MyTitle__",$Title,$LayoutHTML);
$LayoutHTML = str_replace("__MyDescription__",$Description,$LayoutHTML);
$LayoutHTML = str_replace("__MyImage__",$Image,$LayoutHTML);
Prosessi etenee näin:
MySQL-tietokanta → SELECT → PHP-muuttujat → str_replace() → $LayoutHTML → valmis verkkosivusto

Tietokannan sisällöt näytetään näin suoraan olemassa olevassa HTML-muotoilussa.
Testaa muutoksia suoraan tietokannan kautta
Avaa:
Tietokanta → Näytä
Muokkaa sitten olemassa olevaa tietuetta.
Esimerkiksi voit muuttaa My Title otsikon muotoon New My Title.
Myös kuvan voit vaihtaa vastaavan BX-Image-Button kautta.
Tallentamisen ja verkkosivun uudelleenlataamisen jälkeen muutetut tiedot näkyvät suoraan sivun kasvatuksessa.
Näin ollen on suora yhteys seuraavien välillä:
Tietokanta → PHP → $LayoutHTML → Verkkosivusto
Muuta tietoja UPDATE-komennolla
UPDATE komennolla voit muuttaa olemassa olevaa tietuetta suoraan PHP:llä.
Tätä varten määritellään ehto, mikä tietue tulee muuttaa.
Päivityksen suorittamisen jälkeen voit ladata tiedot uudelleen SELECT:lla ja näyttää ne sitten sivullasi $LayoutHTML kautta.
Yhteenveto
PHP:n ja MySQL:n avulla voit tallentaa, lukea ja muuttaa tietoja bluetronix CMS:ssä.
INSERT tai REPLACE tallentavat tietoja, SELECT lukee tietoja ja UPDATE muuttaa olemassa olevia tietueita.
Bettävän $LayoutHTML:n avulla voit liittää ladatut tiedot suoraan olemassa oleviin HTML-rakenteisiin.
Tällä tavoin tietokannan sisältö voidaan puhtain keinoin yhdistää CMS-sivun HTML-rakenteeseen.
UKK
mitä asiakkaat meiltä usein kysyvät
Mitä tarvitsen tähän PHP- ja MySQL-oppaaseen?
Tarvitset kehittäjäoikeudet bluetronix CMS:ään. Lisäksi sinun tulisi jo tietää, miten CMS-sivun renderöintiprosessi toimii ja mikä rooli muuttujalla $LayoutHTML on.
Missä luon uuden tietokantataulun?
Avaa CMS:ssä osa Tietokanta → Uusi taulu.
Mitä sarakkeita käytetään esimerkissä?
Oppaassa käytetään sarakkeita ID, Date, Title, Description ja Image.
Miksi minun pitäisi käyttää Prepared Statements?
Prepared Statements erottavat toimitetut arvot varsinaisesta SQL-komennosta, ja siksi ne on tarkoitettu tietokantakäynteihin.
Mikä on ero INSERT:in ja REPLACE:in välillä?
INSERT lisää uuden tietueen. REPLACE voi korvata olemassa olevan tietueen, jolla on sama yksilöllinen ID tai sama ensisijainen avain.
Miten luen tietoja tietokannasta?
Tätä varten käytät SELECT-komentoa. Ladattuja arvoja voit myöhemmin tallentaa esimerkiksi PHP-muuttujissa, kuten $Title, $Description tai $Image.
Miten MySQL-tiedot päätyvät sivun HTML:ään?
Asetat aluksi omat paikka-varaimesi HTML-koodissa ja korvaat nämä sitten str_replace():n avulla $LayoutHTML:ssa ladatuilla tietokanta-arvoilla.
Miten voin tarkistaa, toimiiko yhteys tietokannan ja verkkosivuston välillä?
Avaa Tietokanta → Näytä, muokkaa olemassa olevaa tietuetta ja lataa sitten verkkosivusto uudelleen. Uudet arvot pitäisi silloin näkyä suoraan sivun ulkoasussa.
Mihin UPDATE:ta käytetään?
UPDATE:lla voit muuttaa jo olemassa olevaa tietuetta suoraan PHP:n kautta.
Voinko käyttää tietokannasta ladattuja kuvia myös sivun ulkoasussa?
Kyllä. Esimerkissä kuvalujuus tallennetaan muuttujaan $Image ja sijoitetaan omaan paikka-varaimeen kuten __MyImage__ $LayoutHTML:ssa.