Data Base MySql in Internet con PHP - Prof. Claudio Maccherani - Perugia - 2019 pag. 1
Data Base in Internet MySql
Esempio di applicazione PHP
Prof. Claudio Maccherani
Un’applicazione che interroghi un database remoto in un server web è scritta in PHP (Personal Home Page tools) - se web server Apache - o in ASP (Active Server Page) - se web server IIS - e si serve di tre diverse tipologie di pagine utilizzando un modello di applicazione detto Three-Tied (a tre livelli). Il livello di interfaccia con l’utente finale (Front End) corrisponde alle pagine HTML o DHTML interpretate dal browser del client, il livello intermedio (Middleware) corrisponde alle pagine ASP o PHP che collegano il database e sono eseguite dal server e infine l’ultimo livello (Back End) è quello fornito dal software di sviluppo e manutenzione del database remoto. Per maggiori informazioni su PHP si vedano le relative dispense.
Le pagine PHP possono essere eseguite solamente all’interno di un server Web. Microsoft fornisce IIS (Internet Information Server) per Windows, Apache fornisce APACHE per Linux. Apache viene fornito anche in versione Windows in piattaforme quali XAMPP (X-cross plataform, A- Apache,, M-MySql, P-PHP, P-Perl) e altre. In XAMPP con phpMyAdmin si definiscono e gestiscono i database e nella cartella httdocs risiedono le pagine php e html.
Per l’utilizzazione locale si imposta nel browser l’indirizzo http://localhost/ o http://127.0.0.1/ o ancora http://nomecomputer/.
Esempio 2019 (sulla falsariga della Rubrica Amici in ASP del 2000)
La rubrica è costituita dalla tabella AMICI (Codice, Nome, Cognome, Telefono) del data base MySql RUBRICA2. L’applicazione PHP - che prevede gestione (inserimento, variazione, cancellazione) ed elenco - è costituita dalle pagine index.htm , inserimento.htm , pesca.php , elenco.php , variazcanc.php , gestione.php e x_connect.php ed è così strutturata:
index.htm 1-inserimento 2-variazione 3-cancellazione 4-elenco
inserimento.htm Nome [ ] Cognome [ ] Telefono [ ]
registrapesca.php
seleziona codice o nome da elenco
variazcanc.php Codice [ ] Nome [ ] Cognome [ ] Telefono [ ]
memorizzacancella
elenco.php
Codice Nome Cognome Telefono
gestione.php
memorizza cancella
RUBRICA2
x_connect.php
connessione al database
Data Base MySql in Internet con PHP - Prof. Claudio Maccherani - Perugia - 2019 pag. 2
index.htm
<a href="inserimento.htm"> 1 – Inserimento </a>
<a href="pesca.php?flag=V"> 2 – Variazione </a>
<a href="pesca.php?flag=C"> 3 – Cancellazione </a>
<a href="elenco.php> 4 – Elenco </a>
flag specifica variazione (V) o cancellazione (C)
inserimento.htm (form)
<form method="POST" action="gestione.php?scelta=1">
<table border="1">
<tr><td>Nome</td><td><input type="text" name="txtnome"></td></tr>
<tr><td>Cognome</td><td><input type="text" name="txtcognome"></td>
</tr><tr><td>Telefono</td><td><input type="text" name="txttelefono">
</td></tr></table>
<p><input type="submit" value="Registra"></p>
</form>
scelta specifica inserimento (1), variazione (2) o cancellazione (3)
x_connect.php (connessione al database, file da includere nelle varie pagine php)
$DB_host = 'localhost'; // host $DB_utente = 'root'; // utente $DB_password = ''; // password $DB_nome = 'rubrica2'; // nome database $DB_tabella = 'amici2'; // tabella
$conn = new mysqli($DB_host,$DB_utente,$DB_password,$DB_nome);
if ($conn->connect_errno)
{ echo 'Errore connessione: ' . $conn->connect_error; } (file da includere nelle singole pagine php per la connessione al database)
pesca.php flag variazione (V) o cancellazione (C), codice codice record selezionato
<?php
require 'x_connect.php';
$flag = $_GET['flag']; $dida = "";
if ($flag=="V") $dida = "VARIAZIONE";
if ($flag=="C") $dida = "CANCELLAZIONE";
echo "<p><b>".$dida."</b><br></p>";
echo '<table border="1"><tr>
<td width="13%"><font color="#008000"><b>Codice</b></font></td>
<td width="30%"><font color="#008000"><b>Nome</b></font></td>
<td width="32%"><font color="#008000"><b>Cognome</b></font></td>
<td width="25%">
<font color="#008000"><b>Telefono</b></font></td></tr>';
$sql = "SELECT * FROM ".$DB_tabella." ORDER BY Codice";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)) {
$link = "<a href = 'variazcanc.php?flag = ".$flag."&codice = "
.$row['Codice']."'>" .$row['Codice']."</a>";
echo "<tr><td align='center'>".$link."</td>";
echo "<td>".$row['Nome']."</td><td>".$row['Cognome']."</td><td>"
.$row['Telefono']."</td></tr>";
}
echo "<table>";
?>
Data Base MySql in Internet con PHP - Prof. Claudio Maccherani - Perugia - 2019 pag. 3
variazcanc.php (form) - flag variazione (V) o cancellazione (C), codice codice record selezionato
<?php
require 'x_connect.php';
$flag = $_GET['flag']; $dida = "";
if ($flag=="V") { $scelta = 2; $dida = "VARIAZIONE"; $rw = ""; } if ($flag=="C")
{ $scelta = 3; $dida = "CANCELLAZIONE"; $rw = "readonly"; }
$codice = $_GET['codice'];
echo "<p><b>".$dida."</b><br></p>";
$sql = "SELECT * FROM ".$DB_tabella." WHERE Codice=".$codice;
$result = mysqli_query($conn,$sql);
$row = mysqli_fetch_array($result);
echo '<form method="POST" action="gestione.php?scelta='.$scelta.'>
<table border="0"><tr><td>Codice:</td>
<td><input type="text" name="txtcodice" value=' .$row["Codice"].' readonly><br></td></tr>
<tr><td>Nome [15]</td>
<td><input type="text" name="txtnome" value='
.$row["Nome"].' maxlength="15" '.$rw.'><br></td></tr>
<tr><td>Cognome [20]</td>
<td><input type="text" name="txtcognome" value='
.$row["Cognome"].' maxlength="20" '.$rw.'><br></td></tr>
<tr><td>Telefono [12]</td>
<td><input type="text" name="txttelefono" value='
.$row["Telefono"].' maxlength="12" '.$rw.'><br></td></tr>
</table><p><input type="submit" value="'.$dida.'"></p>
</form>';
?>
elenco.php
<?php
require 'x_connect.php';
echo '<table border="1"><tr>
<td width="13%"><b>Codice</b>></td>
<td width="30%"><b>Nome</b></td>
<td width="32%"><b>Cognome</b></td>
<td width="25%"><b>Telefono</b></td></tr>';
$sql = "SELECT * FROM ".$DB_tabella." ORDER BY Codice";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)) { echo "<tr><td>".$row['Codice']."</td><td>"
.$row['Nome']."</td><td>".$row['Cognome']."</td><td>"
.$row['Telefono']."</td></tr>";
}
echo "<table>";
?>
Data Base MySql in Internet con PHP - Prof. Claudio Maccherani - Perugia - 2019 pag. 4