Dopo aver creato la tabella ed inserito i dati, potresti aver bisogno di visualizzarla sul browser. Ciò solitamente viene fatto tramite del codice HTML che richiama uno script PHP.
Cominceremo dall’inizio: popoliamo la nuova tabella del database con i dati. Il codice HTML che segue recupererà i dati dalle textbox e li passerà allo script PHP.
<form action="inserisci.php" method="post">
Nome: <input type="text" name="nome"><br>
Cognome: <input type="text" name="cognome"><br>
Età: <input type="text" name="eta"><br>
<input type="Submit">
</form>
Il prossimo passo è creare uno script PHP che inserirà i dati nel database.
<?php
$username = "username";
$password = "password";
$database = "database";
$nome = $_POST['nome'];
$cognome = $_POST['cognome'];
$eta = $_POST['eta'];
mysql_connect("localhost", $username, $password);
@mysql_select_db($database) or die("Impossibile selezionare il database.");
$query = "INSERT INTO utenti VALUES('', '$nome', '$cognome', '$eta')";
mysql_query($query) or die("Errore nella query. Query non eseguita");
mysql_close();
?>
Lo script deve essere salvato con il nome inserisci.php
in modo che venga chiamato dal form HTML.
Adesso che hai almeno un record nel database, potresti voler sapere come recuperare i suoi dati tramite PHP. Il primo comando che ti servirà è il SELECT FROM
.
Questa query MySQL chiederà allo script di selezionare tutti i record dalla tabella utenti
. Dopo l’esecuzione della query il risultato verrà assegnato ad una variabile.
$query = "SELECT * FROM utenti";
$risultati = mysql_query($query);
L’intero contenuto della tabella è incluso in un array PHP ed assegnato alla variabile $risultati
. Devi trasferire ogni singolo valore presente nell’array in un variabile separata. Si devono compiere 2 passi.
Il primo è contare le righe. Prima di poter leggere i dati della variabile contenente i risultati devi conoscere il numero delle righe del database. Usa questo comando:
$num = mysql_numrows($risultati);
Il valore $num
sarà il numero delle righe memorizzate in $risultati
. Questo valore verrà utilizzato nel loop che si occuperà di recuperare i dati e visualizzarli nel browser.
Il secondo passo è scrivere il loop che prenderà ogni riga dei risultati e stamperà i dati. Così facendo verranno mostrati tutti i record.
$i = 0;
while ($i < $num) {
// CODICE PER LA STAMPA DEI DATI
$i++;
}
E’ un loop PHP elementare ed eseguirà il codice il numero corretto di volte. Ogni volta $i
verrà incrementato di uno. Questo è fondamentale, perché $i
dirà allo script quale riga dei risultati deve essere letta. Visto che l’indice della prima linea sarà 0, il loop funzionerà correttamente.
La parte finale dello script dell’output si occupa di assegnare ogni informazione presente nell’array alla sua variabile.
$variable = mysql_result($risultati, $i, "nome_del_campo");
Per assegnare ogni dato alla sua variabile scriveremo:
$nome = mysql_result($risultati, $i, "nome");
$cognome = mysql_result($risultati, $i, "cognome");
$eta = mysql_result($risultati, $i, "eta");
Non ti servirà memorizzare il campo ID in una variabile, perché nella pagina di output non serve.
Ora puoi scrivere lo script finale per l’output dei dati. In questo script l’output non viene formattato quando viene stampato.
<?php
$username = "username";
$password = "password";
$database = "database";
mysql_connect("localhost", $username, $password);
@mysql_select_db($database) or die("Impossibile selezionare il database.");
$query = "SELECT * FROM utenti";
$risultati = mysql_query($query);
$num = mysql_numrows($risultati);
mysql_close();
echo "<b><center>Database Output</center></b><br><br>";
$i=0;
while ($i < $num) {
$nome = mysql_result($risultati, $i, "nome");
$cognome = mysql_result($risultati, $i, "cognome");
$eta = mysql_result($risultati, $i, "eta");
echo "<b>$nome $cognome</b><br>$eta<br><br>";
$i++;
}
?>
Questo codice stampa una lista di tutti i valori memorizzati nel database, ma con una formattazione molto semplice e poco utile per un sito funzionante. Invece sarebbe molto meglio poter inserire questi valori in una tabella. Non è complicato, quello che ti serve è usare l’HTML per stampare i risultati includendo le variabile nelle posizioni corrette. Il modo più semplice per farlo è chiudere i tuoi tag PHP e inserire l’HTML normalmente. E quando raggiungi la posizione di una variabile, inserisci
<?php echo $variablename; ?>
Puoi anche usare il loop PHP per ripetere il codice e includerlo in una tabella più grande. L’output finale sarà:
<html>
<body>
<?php
$username = "username";
$password = "password";
$database = "database";
mysql_connect("localhost", $username, $password);
@mysql_select_db($database) or die("Impossibile selezionare il database");
$query = "SELECT * FROM utenti";
$risultati = mysql_query($query);
$num = mysql_numrows($risultati);
mysql_close();
?>
<table border="0" cellspacing="2" cellpadding="2">
<tr>
<th><font face="Arial, Helvetica, sans-serif">Nome</font></th>
<th><font face="Arial, Helvetica, sans-serif">Cognome</font></th>
<th><font face="Arial, Helvetica, sans-serif">Età</font></th>
</tr>
<?php
$i = 0;
while ($i < $num) {
$nome = mysql_result($risultati, $i, "nome");
$cognome = mysql_result($risultati, $i, "cognome");
$eta = mysql_result($risultati, $i, "eta");
?>
<tr>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $nome;?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $cognome;?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $eta;?></font></td>
</tr>
<?php
$i++;
}
?>
</table>
</body>
</html>
Questo codice stamperà il contenuto della tabella e aggiungerà una riga extra per ogni record del database formattando i dati man mano che vengono stampati.