Php e Mysql – 1
Per utilizzare le funzioni MySQL in PHP è necessario innanzitutto
decommentare il riferimento alla libreria di accesso a mysql nel file
php.ini (presente nella cartella di sistema):
extension=php_mysql.dll
Per esercitarci con php, costruiamo un semplice applicativo che
consente di inserire nuovi supporti nella tabella ‘supporti’.
I moduli PHP necessari sono:
include/connmydb.php
(effettua la connessione al
database nelle altre pagine php)
verifica_supporto.php
(conferma dei dati inseriti)
CORSI DI FORMAZIONE - Basi di Dati: MySql - Parte 5 - Novembre 2005
form_supporto.php
(raccoglie i dati)
elabora_supporto.php
(salva i dati nel db)
1
Php e Mysql – 2 - Connessione
Concediamo i diritti di gestione del database all’utente ‘user_web’:
GRANT ALL ON video_miocognome.* TO
user_web@localhost IDENTIFIED BY ‘pwd_web’;
Il contenuto del file ‘connmydb.php’, posto nella cartella
‘include’ accessibile da web, è il seguente:
<?
?>
@$link = mysql_pconnect("localhost", "user_web", "pwd_web")
or die("Impossibile effettuare una connessione : " .
mysql_error());
@mysql_select_db(“video_miocognome”)
or die(“Impossibile selezionare un database.");
CORSI DI FORMAZIONE - Basi di Dati: MySql - Parte 5 - Novembre 2005
2
Php e Mysql – 3 - Form
Nella pagina form_supporto.php troveremo, tra le altre, le istruzioni:
…
include("./include/connmydb.php");
…
<form method='POST' action=‘verifica_supporto.php' name='dati_supporto'>
…
echo "<SELECT SIZE=‘1’ NAME=‘codice_film’>";
$query = "SELECT * FROM film ORDER BY titolo";
$esito = mysql_query($query) or die("Errore query : " . mysql_error()); // Esec. query
$num_film = mysql_num_rows($esito); // Numero di righe estratte
for ($i=0;$i<$num_film;$i++) {
$codice_film=mysql_result($esito, $i, “codice_film”); // Lettura del codice
$titolo=mysql_result($esito, $i, “titolo”) .
“ – “ . mysql_result($esito, $i, “anno”) .; // Lettura titolo e anno
echo "<OPTION VALUE='$codice_film'>$titolo</OPTION>\n";
}
mysql_free_result($esito); // Azzeramento del ResultSet
echo "</SELECT>";
…
</form>
CORSI DI FORMAZIONE - Basi di Dati: MySql - Parte 5 - Novembre 2005
3
Php e Mysql – 4 – Verifica dati
La pagina verifica_supporto.php visualizzerà i dati appena inseriti e
conterrà, tra le altre, le istruzioni:
…
include("./include/connmydb.php");
…
$query = "SELECT * FROM film WHERE codice_film=" . $_POST["codice_film"];
$esito = mysql_query($query) or die("Errore query : " . mysql_error()); // Esec. query
if (!$esito||mysql_num_rows($esito)==0) { echo “Errore estraz. film, cod. : " .
$_POST["codice_film"]; exit(); }
$titolo = mysql_result($esito, 0, “titolo”) .
" - " . mysql_result($esito, 0, “anno”); // Lettura del titolo e anno del film
echo “Immissione supporto per il film:</TD>";
echo "<TD>" . $_POST[“codice_film”] . " - $titolo</TD>";
echo "<INPUT NAME=‘codice_film’ TYPE='hidden' VALUE=‘" .
$_POST[" codice_film "] . “’>";
…
CORSI DI FORMAZIONE - Basi di Dati: MySql - Parte 5 - Novembre 2005
4
Php e Mysql – 5
Inserimento dati
La pagina elabora_supporto.php carica i dati nel database e conterrà,
tra le altre, le istruzioni:
…
include("./include/connmydb.php");
…
$query = "INSERT INTO film VALUES (" .
$_POST[“codice_supporto"]. ",’".
$_POST[“tipo"]. “’,".
$_POST[“codice_film"]. ",".
$_POST[“quantita"]. "')";
echo "<B>Istruzione SQL eseguita: </B>$query<BR><BR>";
// Esecuzione della INSERT:
@$esito = mysql_query($query) or die("Errore su INSERT: " . mysql_error());
echo "Inserimento effettuato con successo !<BR>";
…
CORSI DI FORMAZIONE - Basi di Dati: MySql - Parte 5 - Novembre 2005
5
PhpMyAdmin - 1
E’ un programma scritto in php per la gestione di database MySql
via web.
E’ scaricabile all’indirizzo web: http://www.phpmyadmin.net
Per attivarlo è necessario:
-
-
scompattare e copiare tutta la cartella in uno spazio web
impostare i parametri di connessione di phpmyadmin nel file
config.inc.php. In genere, per il localhost, è sufficiente impostare:
- $cfg['PmaAbsoluteUri'] = ‘http://localhost/phpMyAdmin’;
- $cfg['blowfish_secret'] = ‘passphrase_cifratura’;
- $cfg['Servers'][$i]['auth_type'] = 'cookie';
(si rimanda alla manualistica per le altre forme di autenticazione)
decommentare “extension=php_mbstring.dll” in php.ini (libreria
necessaria per separare stringhe di caratteri multibyte)
CORSI DI FORMAZIONE - Basi di Dati: MySql - Parte 5 - Novembre 2005
6
PhpMyAdmin - 2
- eseguire lo script “scripts\create_tables_mysql_4_1_2+.sql” per
creare il database di supporto per phpMyAdmin: collegarsi come
root ed eseguire il comando mysql>source …
NOTA: lo script crea anche l’utente pma SENZA password.
Sarebbe opportuno impostare una password per pma con:
SET PASSWORD FOR ‘pma'@'localhost'=PASSWORD(’password');
- aprire la console di gestione in Internet Explorer con l’indirizzo
web http://localhost/phpMyAdmin/index.php
NOTA: potrebbe essere necessario assegnare i diritti di lettura della
cartella contenente phpMyAdmin all’utente del sistema operativo
utilizzato per l’accesso via web (tipicamente IUSR… in Windows)
CORSI DI FORMAZIONE - Basi di Dati: MySql - Parte 5 - Novembre 2005
7
Esercitazione 5.1
Costruire un’applicazione web per la gestione di un negozio on line
per la vendita di componenti hardware per PC tenendo presente che:
- ogni visitatore del sito può effettuare ricerche di prodotti;
- ogni visitatore del sito può inserire/togliere prodotti nel/dal carrello
virtuale;
- ogni visitatore, per poter procedere ad un acquisto, deve essere
registrato ed autenticato;
- il pagamento avviene tramite carta di credito il cui numero viene
fornito all’atto della registrazione.
Le tabelle minimali potrebbero essere:
- clienti (cognome, nome, email, carta di credito, indirizzo, citta …);
- citta (per semplicità non si considerano le località estere);
- ordini;
- dettaglio_ordini;
SEGUE
- carrello_dettaglio;
CORSI DI FORMAZIONE - Basi di Dati: MySql - Parte 5 - Novembre 2005
8
Esercitazione 5.1
- prodotti (prezzo unitario, quantità disponibile, categoria …);
- categorie_prodotti; (ad esempio: stampanti, hard disk, monitor …).
Individuare opportunamente i campi da inserire nelle varie tabelle.
Ricerca dei prodotti
I passi della
procedura
Inserimento nel carrello
Conferma acquisto
Autenticazione cliente
(se non è stato già autenticato)
Inserimento ordine
CORSI DI FORMAZIONE - Basi di Dati: MySql - Parte 5 - Novembre 2005
9