php e database: php mysql

28
PHP e MYSQL Stefano Floris, Versione fabbraio 2012a Realizzare programmi gestionali in ambiente WEB con HTML e PHP Pubblicato su www.troppocurioso.altervista.org Lo so, adesso non vedete l'ora di sviluppare una pagina WEB che visualizza l'elenco dei libri della biblioteca.

Upload: floste

Post on 13-Dec-2014

3.732 views

Category:

Education


7 download

DESCRIPTION

Ecco giunti all'ultima tappa del percorso introduttivo su HTML, PHP e gestione di dati su MySQL: L'accesso ai dati e la visualizzazione delle informazioni contenute nel database tramite pagine dinamiche scritte in PHP.

TRANSCRIPT

Page 1: Php e database: php mysql

PHP e MYSQL

Stefano Floris, Versione fabbraio 2012a

Realizzare programmi gestionali in ambiente WEB con HTML e PHP

Pubblicato su www.troppocurioso.altervista.org

Lo so, adesso non vedete l'ora di sviluppare una pagina WEB che visualizza l'elenco dei libri

della biblioteca.

Page 2: Php e database: php mysql

Per vedere una copia del testo della licenza visita il sito http://www.creativecommons.it/Licenze

Stefano Floris, 2011www.troppocurioso.altervista.org

Questa opera è sotto licenza creativa (di tipo copyleft)

Attribuzione-Non commerciale-Condividi allo stesso modo Generico.

Page 3: Php e database: php mysql

Prendete nota delle funzioni PHP che

imparerete ad usare.

PHP e MYSQL

Page 4: Php e database: php mysql

Prendete nota delle funzioni PHP che

imparerete ad usare.

PHP e MYSQL

A proposito, sapete cosa sono le funzioni?.

Page 5: Php e database: php mysql

y=f(x)

PHP e MYSQL

Esatto, avete capito bene. Il concetto è mutuato dalla

matematica.

Page 6: Php e database: php mysql

y=f(x)

PHP e MYSQL

Esatto, avete capito bene. Il concetto è mutuato dalla

matematica.

f è la funzione.

Page 7: Php e database: php mysql

Piu' semplicemente vi dirò che una funzione è quasi

come un comando.

PHP e MYSQL

Page 8: Php e database: php mysql

Piu' semplicemente vi dirò che una funzione è quasi

come un comando.

PHP e MYSQL

Voi, per esempio, se siete arrivati fin qui conoscete

sicuramente i comandi echo, if, for ecc. ecc.

Page 9: Php e database: php mysql

Ecco, la funzione, rispetto al comando produce un risultato che

viene generalmente salvato in una variabile.

PHP e MYSQL

Page 10: Php e database: php mysql

Ecco, la funzione, rispetto al comando produce un risultato che viene generalmente salvato in una

variabile.

PHP e MYSQL

Piu' precisamente si dice che la funzione assume un valore (che può essere salvato in una variabile).

Page 11: Php e database: php mysql

PHP e MYSQL

// Comando: Echo “benvenuto nel mio sito!”;

// Funzione: $potenza = pow($valore,2);

Ecco un comando e una funzione a confronto. echo

è un comando, pow una funzione.

Page 12: Php e database: php mysql

PHP e MYSQL// Per connettersi a MySQL// mysqli_connect()//// Per aprire un database specifico// mysqli_select_db()// Per lanciare un comando SQL// mysqli_query()// Per prendere i dati del record// corrente e portarli in un // vettore// mysqli_fetch_array()// Per liberare le memoria// mysqli_free_resul()// Per chiudere la connessione MySQL// mysqli_close()

Per accedere a MYSQL e poterlo

interrogare, PHP mette a

disposizione una sequenza di

funzioni.

Vi elenco qui le piu' importanti.

Prendete nota:

Page 13: Php e database: php mysql

PHP e MYSQLVediamo adesso come poter usare

le funzioni elencate.

Le prenderemo in esame una per volta in versione piu' semplificata

per noi.

Se desiderate vedere l'elenco completo di comandi e funzioni PHP e tutti i parametri che le

funzioni ricevono fate riferimento al manuale on line.

http://it2.php.net/manual

Page 14: Php e database: php mysql

PHP e MYSQLPartiamo dalla prima da usare

// Per connettersi a MySQL.// mysqli_connect(<server>,<utente>,<password>,<nomedb>)//// La funzione riceve quattro parametri:// <server> → l'indirizzo del server (p.e 172.16.0.24)// <utente> → il nome dell'utente registrato su MySQL// <password> → la password associata all'utente// <nomedb> → il nome del database da usare

// La funzione restituisce:// a) FALSE (valore di tipo boolean) se la cvonnessione// non è avvenuta correttamente // (server irraggiungibile, utente e // password errati o altri problemi)// b) un valore numerico univoco della connessione

Page 15: Php e database: php mysql

PHP e MYSQL...$db è la variabile che uso per salvare il risultato della chiamata

alla funzione...// *****************************************************// Imposto le variabili che indicano i // parametri del database// *****************************************************$db_host = "172.16.0.13"; // Server MySQL$db_user = "baldassini"; // Nome utente $db_password = "baldassini"; // Password $db_name = "baldassini"; // Nome del database

// ****************************************************// Connessione al motore DataBase usando le variabili// impostate sopra// e la funzione di php mysqli_connect()// *******************************************************$db = mysqli_connect($db_host, $db_user, $db_password);

Page 16: Php e database: php mysql

PHP e MYSQL...$db è la variabile che uso per salvare il risultato della chiamata

alla funzione...

// ******************************************************// La variabile $db è utilizzata per verificare // l'esito della connessione// La funzione die interrompe la procedura// ******************************************************if ($db == FALSE) { die ("Errore nella connessione. Verificare i parametri di accesso");}

echo "connesione a MYSQL avvenuta <BR>";

Page 17: Php e database: php mysql

PHP e MYSQLUna volta stabilita la connessione è necessario aprire il database scelto.

// Per connettersi a MySQL.// mysqli_select_db(<idconnessione>,<nomedatabase>)//// La funzione riceve due parametri:// <idconessione> → il codice della connessione// ricevuto dalla funzione// mysqli_connect// // <nomedatabase> → il nome del db da usare//// La funzione restituisce:// a) FALSE (valore di tipo boolean) se l'apertura // del db non è andata in porto// b) TRUE (valore di tipo boolean) se l'apertura// è andata in porto correttamente

Page 18: Php e database: php mysql

PHP e MYSQLIn questo caso non salvo il valore della funzione (perché

non mi serve successivamente) e controllo l'esito dell'operazione direttamente con la se.

// ******************************************************// Mi collego al database che mi interessa// con la funzione mysqli_select_db() che restituisce // un valore boolean// vero = connessione avvenuta// falso = connessione con problemi// ******************************************************

if ( mysqli_select_db($db, $db_name) == FALSE){ die ("Errore nella selezione del database. Verificare i parametri");}echo "<BR>";echo "fatta connessione db <BR>";

Page 19: Php e database: php mysql

PHP e MYSQLNotate il fatto che la variabile $db, viene usata d'ora in poi per tutte le chiamate alle altre

funzioni...

$db serve infatti ad indicare quale connessione al

DBMS utilizzare.

...if ( mysqli_select_db($db, $db_name) == FALSE)..

Page 20: Php e database: php mysql

PHP e MYSQLAdesso serve il comando SQL da inviare al DBMS. Scrivo

il comando come testo e lo salvo in una variabile (qui chiamata $query)

// ******************************************************// Desidero recuperare i dati da una tabella,// uso la SELECT// per farlo costruistro' il comando e lo metto in // una variabile di stringa//// ******************************************************$query = "SELECT * FROM FORNITORI";

Page 21: Php e database: php mysql

PHP e MYSQLIl comando SQL salvato in una variabile viene inviato alla

funzione mysqli_query che ha lo scopo di mandare il comando al DBMS chiedendogli di eseguirlo.

// ******************************************************// Lancio la query con la funziona PHP mysqli_query() // che chiede due parametri// 1)il primo è la variabile di connessione al database,// 2)il secondo la stringa del comando sql. //// La funzione restituisce un risultato che salvo // in una variabile che// utilizzo per verificare se tutto è andato // come mi aspettavo// Se result vale false, allora non ho ottenuto risultati// ******************************************************$result = mysqli_query($db, $query);if ($result) == FALSE { die ("nessun dato in archivio");}

Page 22: Php e database: php mysql

PHP e MYSQLIl risultato del comando SELECT è come un foglio

elettronico: un insieme di righe e colonne. E' salvato in una variabile di tipo speciale (array) a cui abbiamo dato il nome

$result.

// ******************************************************// Adesso costruisco una tabella (<TABLE>) delle// dimensioni giuste per ospitare i dati ricevuti// // PHP ha la funzione mysqli_fetch_array() che serve // per leggere il record corrente// Quando è a fine file restituisce false// ******************************************************echo "<BR>";echo "<TABLE BORDER=1>";

Page 23: Php e database: php mysql

PHP e MYSQL$result contiene dunque una tabella (recordset che si

scorre riga per riga). mysqli_fetch_array è la funzione che scorre il recordset, restituisce il record corrente e

sposta il puntatore al record successivo.

// Ciclo finchè è vero, cioè finché ci sono record while ($record = mysqli_fetch_array($result)){ echo "<TR>";

// Output del primo campo del record corrente echo "<TD>"; echo "$record[0] <BR>"; echo "</TD>";

// Output del secondo campo del record corrente echo "<TD> $record[1] <BR> </TD>"; echo "</TR>";}echo "</TABLE";

Page 24: Php e database: php mysql

PHP e MYSQL$record è invece una variabile di tipo array che contiene

tutti i campi del record corrente.Per poter utilizzare il contenuto occorre indicare la posizione nel vettore. La

prima posizione (0) è il contenuto del primo campo.

// Ciclo finchè è vero, cioè finché ci sono record while ($record = mysqli_fetch_array($result)){ echo "<TR>";

// Output del primo campo del record corrente echo "<TD>"; echo "$record[0] <BR>"; echo "</TD>";

// Output del secondo campo del record corrente echo "<TD> $record[1] <BR> </TD>"; echo "</TR>";}echo "</TABLE";

Page 25: Php e database: php mysql

PHP e MYSQLPotevo scrivere anche così:

// Ciclo finchè è vero, cioè finché ci sono record while ($record = mysqli_fetch_array($result)== TRUE){ echo "<TR>";

// Output del primo campo del record corrente echo "<TD>"; echo "$record[0] <BR>"; echo "</TD>";

// Output del secondo campo del record corrente echo "<TD> $record[1] <BR> </TD>"; echo "</TR>";}echo "</TABLE";

Page 26: Php e database: php mysql

PHP e MYSQLTerminato l'output del risultato della query (comando SQL)

libero la memoria ($result) e chiudo le connessioni con il DBMS.

// Distrugge il record set // e libera la memoria utilizzata per gestirlo mysqli_free_result($result); // Chiude la connessione mysqli_close($db);?></body></html>

Page 27: Php e database: php mysql
Page 28: Php e database: php mysql

28

FineFine