Collegare PHP e MySQL nel CMS bluetronix
In questo tutorial creerai una tua tabella di database e la collegherai a una pagina CMS. Attraverso esempi pratici, imparerai i comandi SQL INSERT, REPLACE, SELECT e UPDATE e scoprirai come visualizzare i valori del database sul tuo sito web tramite segnaposto HTML.
Creare una pagina di esempio
Per questo tutorial, inizia creando una nuova pagina di esempio.
Per esempio:
Esempio PHP MySQL
La pagina può inizialmente essere completamente vuota.
Apri la pagina successivamente nell'editor HTML normale e inserisci una qualsiasi sezione della pagina. Questa area HTML servirà in seguito come modello per i dati che verranno caricati dal database.
Creare una tabella di database
Prima di poter salvare i dati, hai bisogno di una propria tabella di database.
Apri quindi:
Database → Nuova tabella
Per questo esempio utilizziamo una tabella con le colonne ID, Data, Titolo, Descrizione e Immagine.
ID contiene l'ID univoco del record. Data memorizza la data e l'ora. Titolo contiene il titolo, Descrizione un testo descrittivo più lungo e Immagine il nome dell'immagine.
I nomi di tabelle, colonne e variabili dovrebbero sempre essere utilizzati in inglese all'interno dei tutorial per sviluppatori.
Aprire il codice PHP
Dopo aver creato la tabella, torna alla tua pagina di esempio.
Apri lì:
Codice PHP
Da quest'area puoi accedere direttamente al database.
Salvare i dati con INSERT o REPLACE
Nel primo esempio, salvi un record nella tabella del database precedentemente creata.
Inizia impostando le variabili PHP necessarie.
Esempio:
$ID = 1;
$Date = date("Y-m-d H:i:s");
$Title = "My Title";
$Description = "My Description";
$Image = "my-image.jpg";
Puoi quindi salvare questi valori con un MySQL Prepared Statement.
Per gli accessi al database dovresti sempre utilizzare Prepared Statements. In questo modo i valori vengono elaborati separatamente dal comando SQL effettivo.
Esempio con REPLACE:
$stmt = $mysqli->prepare("REPLACE INTO ExampleTable (ID, `Date`, Title, Description, Image) VALUES (?, ?, ?, ?, ?)");
$stmt->bind_param("issss", $ID, $Date, $Title, $Description, $Image);
$stmt->execute();

Chiama la pagina una volta.
Apri poi:
Database → Visualizza
Lì dovrebbe essere visibile il nuovo record creato.
Differenza tra INSERT e REPLACE
INSERT aggiunge un nuovo record.
Se esiste già un record con la stessa ID unica o con la stessa chiave primaria, un normale INSERT può causare un errore di chiave duplicata.
REPLACE può essere utilizzato quando un record esistente deve essere sostituito con la stessa ID unica.
Per esempi di test con un'ID fissa, REPLACE è quindi spesso più pratico, poiché la pagina può essere chiamata più volte.
Leggere i dati con SELECT
Nel passaggio successivo, leggerai nuovamente il record salvato dal database.
Esempio:
$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"];
}
I valori letti si trovano poi nelle variabili $Date, $Title, $Description e $Image.
Collegare il database e $LayoutHTML
La variabile globale del CMS $LayoutHTML contiene durante il processo di rendering l'HTML attualmente generato della pagina.
In questo modo puoi sostituire i tuoi segnaposto all'interno del codice HTML con dati dalla tabella MySQL.
Impostare i segnaposto nel codice HTML
Apri di nuovo il codice HTML della tua pagina di esempio.
I contenuti della sezione della pagina precedentemente inserita possono ora essere sostituiti da tuoi segnaposto.
Per esempio:
__MyDate__
__MyTitle__
__MyDescription__
__MyImage__
Un esempio HTML semplificato:
<section>
<div class="container">
<img src="__MyImage__" alt="">
<small>__MyDate__</small>
<h2>__MyTitle__</h2>
<p>__MyDescription__</p>
</div>
</section>

Per questo primo esempio MySQL, i marchi di traduzione esistenti possono essere rimossi inizialmente. In questo modo è più facile riconoscere quali contenuti vengono sostituiti direttamente da PHP e MySQL.
Inserire i valori del database nel layout
Dopo che i dati sono stati caricati con SELECT, sostituisci i segnaposto all'interno di $LayoutHTML.
Esempio:
$LayoutHTML = str_replace("__MyDate__",$Date,$LayoutHTML);
$LayoutHTML = str_replace("__MyTitle__",$Title,$LayoutHTML);
$LayoutHTML = str_replace("__MyDescription__",$Description,$LayoutHTML);
$LayoutHTML = str_replace("__MyImage__",$Image,$LayoutHTML);
Il processo è quindi:
Database MySQL → SELECT → Variabili PHP → str_replace() → $LayoutHTML → pagina web finita

I contenuti del database vengono quindi visualizzati direttamente all'interno del layout HTML esistente.
Testare le modifiche direttamente tramite il database
Apri:
Database → Visualizza
Modifica successivamente il record esistente.
Ad esempio, puoi cambiare il titolo di My Title in New My Title.
Puoi anche cambiare l'immagine tramite il corrispondente BX-Image-Button.
Dopo aver salvato e ricaricato la pagina web, i dati modificati verranno visualizzati direttamente nel layout della pagina.
In questo modo esiste una connessione diretta tra:
Database → PHP → $LayoutHTML → Pagina web
Modificare i dati con UPDATE
Con UPDATE puoi modificare direttamente un record esistente tramite PHP.
Viene definito tramite una condizione quale record deve essere modificato.
Dopo aver eseguito l'aggiornamento, puoi caricare nuovamente i dati con SELECT e poi mostrarli sulla tua pagina tramite $LayoutHTML.
Riepilogo
Con PHP e MySQL puoi memorizzare, leggere e modificare dati all'interno del CMS bluetronix.
INSERT o REPLACE memorizzano dati, SELECT legge i dati e UPDATE modifica i record esistenti.
Attraverso $LayoutHTML puoi poi inserire i dati caricati direttamente nelle strutture HTML esistenti.
In questo modo è possibile collegare i contenuti del database in modo ordinato con il layout HTML di una pagina CMS.
FAQ
cosa ci chiedono spesso i clienti
Cosa mi serve per questo tutorial su PHP e MySQL?
Hai bisogno di un accesso da sviluppatore al CMS bluetronix. Inoltre, dovresti già sapere come funziona il processo di rendering del sito CMS e quale compito ha la variabile $LayoutHTML.
Dove creo una nuova tabella del database?
Apri nel CMS la sezione Database → Nuova Tabella.
Quali colonne vengono utilizzate nell'esempio?
Nel tutorial vengono utilizzate le colonne ID, Date, Title, Description e Image.
Perché dovrei utilizzare i Prepared Statements?
I Prepared Statements separano i valori passati dal comando SQL effettivo e sono quindi destinati agli accessi al database.
Qual è la differenza tra INSERT e REPLACE?
INSERT aggiunge un nuovo record. REPLACE può sostituire un record esistente con la stessa ID unica o la stessa chiave primaria.
Come leggo i dati dal database?
Per questo utilizzi un comando SELECT. I valori caricati possono poi essere memorizzati in variabili PHP come $Title, $Description o $Image.
Come arrivano i dati MySQL nell'HTML della pagina?
Inizialmente imposti dei segnaposto nel codice HTML e poi li sostituisci con str_replace() all'interno di $LayoutHTML con i valori del database caricati.
Come posso verificare se la connessione tra database e sito web funziona?
Apri Database → Visualizza, modifica un record esistente e poi ricarica nuovamente il sito. I nuovi valori dovrebbero apparire direttamente nel layout della pagina.
A cosa serve l'UPDATE?
Con UPDATE puoi modificare direttamente un record già esistente tramite PHP.
Posso usare anche immagini dal database nel layout della pagina?
Sì. Nell'esempio il valore dell'immagine viene memorizzato nella variabile $Image e utilizzato tramite un segnaposto come __MyImage__ in $LayoutHTML.