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.

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 of Php e database: php mysql

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