PHP e MYSQL
                Lo so, adesso non vedete l'ora
                di sviluppare una pagina WEB
                che visualizza l'elenco dei libri
                        della biblioteca.




Stefano Floris,                          Realizzare programmi gestionali in ambiente
Versione fabbraio 2012a                              WEB con HTML e PHP
                                         Pubblicato su
                                         www.troppocurioso.altervista.org
Questa opera è sotto licenza
        creativa (di tipo copyleft)
                Attribuzione-Non commerciale-
             Condividi allo stesso modo Generico.




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

Stefano Floris, 2011
www.troppocurioso.altervista.org
PHP e MYSQL
 Prendete nota delle
 funzioni PHP che
imparerete ad usare.
PHP e MYSQL
 Prendete nota delle
 funzioni PHP che
imparerete ad usare.

         A proposito, sapete cosa
            sono le funzioni?.
PHP e MYSQL
 y=f(x)

 Esatto, avete capito bene. Il
  concetto è mutuato dalla
         matematica.
PHP e MYSQL
 y=f(x)

  Esatto, avete capito bene. Il
   concetto è mutuato dalla
          matematica.
        f è la funzione.
PHP e MYSQL
Piu' semplicemente vi dirò
che una funzione è quasi
   come un comando.
PHP e MYSQL
Piu' semplicemente vi dirò
che una funzione è quasi
    come un comando.

             Voi, per esempio, se siete
              arrivati fin qui conoscete
          sicuramente i comandi echo, if,
                    for ecc. ecc.
PHP e MYSQL
    Ecco, la funzione, rispetto al
comando produce un risultato che
  viene generalmente salvato in
           una variabile.
PHP e MYSQL
   Ecco, la funzione, rispetto al
comando produce un risultato che
viene generalmente salvato in una
             variabile.

           Piu' precisamente si dice che
             la funzione assume un
              valore (che può essere
             salvato in una variabile).
PHP e MYSQL
  Ecco un comando e una
funzione a confronto. echo
  è un comando, pow una
         funzione.

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


                   // Funzione:
                   $potenza = pow($valore,2);
Per accedere a
MYSQL e poterlo
  interrogare,          PHP e MYSQL
  PHP mette a
                   //   Per connettersi a MySQL
disposizione una
                   //   mysqli_connect()
   sequenza di
                   //
    funzioni.
                   //   Per aprire un database specifico
                   //   mysqli_select_db()
Vi elenco qui le
piu' importanti.   // Per lanciare un comando SQL
                   // mysqli_query()
Prendete nota:
                   // 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()
PHP e MYSQL
Vediamo 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
PHP e MYSQL
                               Partiamo 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
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);
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>";
PHP e MYSQL
              Una 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
PHP e MYSQL
     In 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>";
PHP e MYSQL
                          Notate il fatto che la variabile
                          $db, viene usata d'ora in poi
                          per tutte le chiamate alle altre
                                     funzioni...


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




                                             $db serve infatti ad
                                               indicare quale
                                               connessione al
                                              DBMS utilizzare.
PHP e MYSQL
   Adesso 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";
PHP e MYSQL
   Il 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");
}
PHP e MYSQL
       Il 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>";
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";
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";
PHP e MYSQL
              Potevo 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";
PHP e MYSQL
  Terminato 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>
Fine


       28

Php e database: php mysql

  • 1.
    PHP e MYSQL Lo so, adesso non vedete l'ora di sviluppare una pagina WEB che visualizza l'elenco dei libri della biblioteca. Stefano Floris, Realizzare programmi gestionali in ambiente Versione fabbraio 2012a WEB con HTML e PHP Pubblicato su www.troppocurioso.altervista.org
  • 2.
    Questa opera èsotto licenza creativa (di tipo copyleft) Attribuzione-Non commerciale- Condividi allo stesso modo Generico. Per vedere una copia del testo della licenza visita il sito http://www.creativecommons.it/Licenze Stefano Floris, 2011 www.troppocurioso.altervista.org
  • 3.
    PHP e MYSQL Prendete nota delle funzioni PHP che imparerete ad usare.
  • 4.
    PHP e MYSQL Prendete nota delle funzioni PHP che imparerete ad usare. A proposito, sapete cosa sono le funzioni?.
  • 5.
    PHP e MYSQL y=f(x) Esatto, avete capito bene. Il concetto è mutuato dalla matematica.
  • 6.
    PHP e MYSQL y=f(x) Esatto, avete capito bene. Il concetto è mutuato dalla matematica. f è la funzione.
  • 7.
    PHP e MYSQL Piu'semplicemente vi dirò che una funzione è quasi come un comando.
  • 8.
    PHP e MYSQL Piu'semplicemente vi dirò che una funzione è quasi come un comando. Voi, per esempio, se siete arrivati fin qui conoscete sicuramente i comandi echo, if, for ecc. ecc.
  • 9.
    PHP e MYSQL Ecco, la funzione, rispetto al comando produce un risultato che viene generalmente salvato in una variabile.
  • 10.
    PHP e MYSQL Ecco, la funzione, rispetto al comando produce un risultato che viene generalmente salvato in una variabile. Piu' precisamente si dice che la funzione assume un valore (che può essere salvato in una variabile).
  • 11.
    PHP e MYSQL Ecco un comando e una funzione a confronto. echo è un comando, pow una funzione. // Comando: Echo “benvenuto nel mio sito!”; // Funzione: $potenza = pow($valore,2);
  • 12.
    Per accedere a MYSQLe poterlo interrogare, PHP e MYSQL PHP mette a // Per connettersi a MySQL disposizione una // mysqli_connect() sequenza di // funzioni. // Per aprire un database specifico // mysqli_select_db() Vi elenco qui le piu' importanti. // Per lanciare un comando SQL // mysqli_query() Prendete nota: // 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()
  • 13.
    PHP e MYSQL Vediamoadesso 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
  • 14.
    PHP e MYSQL Partiamo 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
  • 15.
    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);
  • 16.
    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>";
  • 17.
    PHP e MYSQL Una 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
  • 18.
    PHP e MYSQL In 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>";
  • 19.
    PHP e MYSQL Notate il fatto che la variabile $db, viene usata d'ora in poi per tutte le chiamate alle altre funzioni... ... if ( mysqli_select_db($db, $db_name) == FALSE) .. $db serve infatti ad indicare quale connessione al DBMS utilizzare.
  • 20.
    PHP e MYSQL Adesso 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";
  • 21.
    PHP e MYSQL Il 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"); }
  • 22.
    PHP e MYSQL Il 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>";
  • 23.
    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";
  • 24.
    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";
  • 25.
    PHP e MYSQL Potevo 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";
  • 26.
    PHP e MYSQL Terminato 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>
  • 28.