Fare internet

E' come il lego, più pezzi ho più sono allegro
Seguci su Facebook Seguici su Twitter Iscrivita ai nostri Feed      Mandaci una mail

Mostrare il risultato di una query con il PHP

Scritto da Fare-internet il 17 dicembre 2010 condividi condividi

Uno dei principali utilizzi del PHP e in generale dei linguaggi server side è l’interrogazione di basi di dati e la visualizzazione dei risultati in una pagina web.
In questo articolo vogliamo vedere quali sono i passi fondamentali per stampare il risultato di una query all’interno di una pagina mediante il php.
Faremo riferimento ad un database su MySql.

La prima cosa da fare è stabilire una connessione con il gestore dei database, per far questo abbiamo necessita di tre parametri: l’indirizzo del server db, la username dell’utente che si può connettere e la sua password.
Un’altra informazione che dobbiamo avere a disposizione è il nome del database che contiene i dati che ci interessano.

//connessione al server db
mysql_connect(‘indirizzo.server’,‘usr’,‘pwd’);
//selezione db
mysql_select_db(‘nomeDb’)

Generalmene tutti i parametri di connessione e il nome del database ci sono forniti dal provider.
In contesti di prova (come ad esempio installazioni di XAMPP o EasyPhp) la connessione dovrebbe essere:

//connessione al server db
mysql_connect(‘127.0.0.1’,‘root’,);

L’IP della macchina è 127.0.0.1 , ossia la macchina stessa, la username è ‘root’ e la password non c’è. Anche in questo casp però è necessario conoscere il nome del batabase.

In ogni caso da ora in poi daremo per scontato di essere connessi, quindi possiamo passare alla scrittura della query e alla sua esecuzione (se sentite dire “lanciare una query”, potete interpretarlo come “eseguire una query”)

Supponiamo di avere una tabella amici contenente i nomi,cognomi e telefoni dei nostri amici. la query potrebbe essere una cosa simile a:

SELECT nome,cognome,telefono FROM amici ORDER BY cognome,nome

Prima di proseguire occorre tener presente che il risultato di una query di selezione è una tabella. E’ necessario che questo concetto sia chiaro per prosegire con successo nello sviluppo della pagina.

Ora prepariamo la query e lanciamola:

$query="SELECT nome,cognome,telefono FROM amici ORDER BY cognome,nome";
$res=mysql_query($query);
 

Prima di tutto bisogna capire che l’SQL non è di pertinenza del php, quindi lo dobbiamo trattare come una stringa e passarlo al gestore di db tramite la funzione mysql_query.
Il server database ci risponderà con una tabella, ossia con delle informazioni disposte in righe e colonne, su una singola riga abbiamo le informazioni attinenti, ossia nome, cognome e telefono di una persona saranno sulla stessa riga.

Quindi la variabile $res conterrà una tabella (non è proprio così ma per farci capire va bene).

A questo punto quello che vogliamo fare è visualizzre riga per riga i dati estratti dalla tabelle.
Per fare questo controllere se $res esiste e se ha un numero di righe maggiore di 0.

if($res && mysql_num_rows($res)>0){
// qui ci andrà il codice per stampare i risultati
} else
     echo "nessun risultato";

Per scorrere i risultati della query dobbiamo utilizzare la funzione mysql_fetch_assoc(), che prende il $res e lo scorre tutte le righe fino all’ultima, e torna un array associativo finche scorre le righe, falso altrimenti, quindi per utilizzarlo si mette in ciclo while, nel seguente modo:

if($res && mysql_num_rows($res)>0){
     while($row=mysql_fetch_assoc($res)){
        echo $row[‘nome’]." – ";
        echo $row[‘cognome’]." – ";
        echo $row[‘telefono’]." <br> ";
     }
} else
     echo "nessun risultato";

Come vedete per stampare i campi abbiamo usato esattamente i nomi dei campi selezionati dalla tabella. Anche questo è opera di mysql_fetch_assoc() che ritorna un array associativo i cui indici sono esattamente i nomi dei campi risultanti dalla query.

Ora non ci resta che mettere insieme tutti i pezzi e provare il codice.

Puoi commentare l’articolo o porre eventuali domande nell’apposita discussione su facebook

Sei interessato ad un corso di PHP a Roma?

Twitter