CODICE PHP PER UNA APPLICAZIONE WEB CON INTERROGAZIONE DATABASE
Supponiamo di aver creato già una pagina index che utilizza all’interno un form (vedi argomento
precedente) per permettere all’utente di inserire una “provincia” ed una “categoria” :
Tale pagina potrebbe avere il seguente aspetto (dipende dalla formattazione HTML e CSS) :
Ipotesi : all’interno del codice , ci sono due variabili di nome rispettivamente ‘Provincia’ e ‘Categoria’
che vengono passate con il metodo “POST” alla pagina che stiamo creando (avente nome, ad esempio
“risultato.php” )
Il seguente codice PHP implementa la visualizzazione di eventi relativamente ad una provincia e una
data precedentemente scelte dall'utente ( dati acquisiti dalla pagina tramite metodo di invio POST ) :
Pagina
risultato.php
<?php>
$provincia = $_POST['Provincia'];
$categoria = $_POST['Categoria'];
?>
// lettura delle variabili
<html>
<head>
<title>Visualizzazione elenco eventi</title>
<link rel="stylesheet" href="eventi.css" type="text/css">
1
<?php
//Dati di connessione
$host = "DBserver";
$user="DBuser";
$password="DBpwd”;
//Connessione al database
$connect = mysql_connect($host, $user, $password)
or die("Errore di connessione" . mysql_error());
// Interrogazione database
$sql="SELECT * FROM Eventi WHERE
Provincia=$provincia AND Categoria = $categoria";
$result = mysql_query($sql);
?>
</head>
<body>
<p>Elenco Eventi trovati</p>
<?php
if (mysql_num_rows($result) != 0) {
echo "<TABLE>"
echo "<TR>";
echo "<TD>IDEvento</TD> <TD>Data </TD> <TD>Luogo</TD>
<TD>Categoria</TD> <TD>Descrizione</TD>";
echo "</TR>";
while ($row = mysql_fetch_array($result)) {
// finchè ci sono righe da leggere in $result prosegui
echo "<TR>";
echo
echo
echo
echo
echo
echo
"<TD>"
"<TD>"
"<TD>"
"<TD>"
"<TD>"
"<TD>"
.
.
.
.
.
.
$row["IDEvento"] . "</TD>";
$row["Provincia"] . "</TD>";
$row["Data"] . "</TD>";
$row["Citta"] . "</TD>";
$row["Categoria"] . "</TD>";
$row["Descrizione"]. "</TD>";
echo "</TR>";
}
echo "</TABLE>"
}
?>
</body>
</html>
Esempio :
L’utente seleziona la provincia ‘RN’ con categoria ‘1 (spettacoli musicali)’.
2
L’effetto della query
SELECT * FROM Eventi
WHERE Provincia=$provincia AND Categoria = $categoria"
produce il seguente risultato :
IDEvento
01
03
Provincia
RN
RN
Data
30/05/2016
04/06/2016
Città
Rimini
Riccione
Categoria
1
1
Descrizione
Balli di grupo
Canzoni e danze
Tale risultato viene memorizzato nella variabile $result sotto forma di array.
Tale “tabella” viene stampata a video attraverso le istruzioni php : si esegue un ciclo While che legge
una riga alla volta e per ognuna di queste stampa i valori contenuti in ciascuna colonna.
3