giovedì 2 agosto 2012

Query da Php a Mysql

Salve a tutti!
Quest oggi vedremo come sia possibile, mediante Php, interrogare un database MySql in locale (se abbiamo installato sul nostro computer un server apache mediante XAMPP) o in remoto.

Per chi se la fosse persa, segnalo la guida necessaria relativa ai Parametri Php per la connessione al database MySql della puntata precedente.

Cominciamo a visualizzare un pò di codice. Il primo passo è includere la libreria precedentemente creata e chiamata "accessodb.php" (o come volete voi, basta che il nome sia riconoscibile per eventuali utilizzi futuri).

Qui di seguito una semplice query dove effettueremo una SELECT su una tabella fittizia chiamata Anagrafica:

1   <?php
2  
3   include("accessodb.php");
4  
5   $interrogazione = "SELECT * FROM Anagrafica";
6   $risultati = mysql_query($interrogazione,$connessione);
7   $riga = mysql_fetch_array($risultati);
8
9   $nome = $riga['nome'];
10 $cognome $riga['conome'];
11 $indirizzo = $riga['indirizzo'];
12
13 ?>

Come si può vedere, alla riga 13 abbiamo preparato una stringa che contiene la nostra query.

Alla riga 14 invece creiamo una variabile $risultati che conterrà il resultset della query invocando la funzione mysql_query che ha come primo argomento la query e come secondo i parametri di connessione al database (definito nel file "accessodb.php").

La riga 15 crea invece un array che ho chiamato $riga che conterrà i campi della prima riga ottenuta dalla query che abbiamo effettuato. Per accedere ai valori dell'array è possibile farlo in due modi:

1) Mediante l'invocazione del nome del campo: $riga['nome'];
2) Mediante utilizzo di un indice numerico: $riga[0];

Questo supponendo che la colonna nome sia la prima (come sappiamo gli indici di un array partono da zero). Personalmente per dare chiarezza al codice preferisco utilizzare il primo metodo.

Per quanto riguarda la funzione mysql_fetch_array, essa estrae una riga dal resultset contenuto nella variabile $risultati ogni volta che verrà invocata e restituirà un valore false quando non ci saranno più righe da estrarre.

Ora vedremo il codice per estrarre tutte le righe della tabella anagrafica e mandarla in output nel nostro browser:

1   <?php
2  
3   include("accessodb.php");
4  
5   $interrogazione = "SELECT * FROM Anagrafica";
6   $risultati = mysql_query($interrogazione,$connessione);
7   
8   while($riga = mysql_fetch_array($risultati)) {
9       echo $nome = $riga['nome']." ";
10     echo $cognome $riga['conome'].", ";
11     echo $indirizzo = $riga['indirizzo']."<br>";
12     }
13
14
15 ?>

Nella riga 8 è stato creato un ciclo while che scorre il contenuto del resultset finchè esso non restituisce false, e manda in output tutte le righe della tabella.

Immaginando che in Anagrafica esistano quattri righe, l'output sarà qualcosa del tipo:

Mario Rossi, via del popolo 1
Giuseppe Verdi, via dell'alleanza 10
Pino Campagna, via d'Azeglio 5/C
Giuseppe Bianchi, rione Santa Margherita

Un ultima funzione utile che vi segnalo serve a contare quante righe restituisce il resultset della query:

1  <?php
2  
3  include("accessodb.php");
4  
5  $interrogazione = "SELECT * FROM Anagrafica";
6  $risultati = mysql_query($interrogazione,$connessione);
7  $num = mysql_num_rows($risultati);
8  
9  ?>


Nella riga 7 è stata chiamata la funzione mysql_num_rows che accetta come parametro il resultset $risultati e mette dentro la variabile $num il numero di righe restituite dalla query.

Penso di avervi fornito abbastanza spunti per iniziare a sperimentare l'utilizzo congiunto di Php e Mysql. Per interrogazioni a database che effettuano operazioni di UPDATE o di DELETE di uno o più record, basta modificare la query all'interno della variabile stringa $interrogazione.

Stay tuned!

Nessun commento:

Posta un commento