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 caso 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.
Start
PHP: Scopri i segreti per imparare a programmare il linguaggio web-side.
- Guida completa per iniziare a porgrammare in PHP
- Numerosi esempi di codice ed di esercizi
- 109 pagine in italiano
Medio
PHP 8: Tecniche & Esempi per padeoneggiare il linguaggio.
- un libro sviluppato per permetterti di entrare nel mondo del lavoro come sviluppatore web
- 312 pagine in italiano
MySql
Impara a programmare in PHP e ad usare il più diffuso DMBS
- PHP & MySQL
- sviluppa applicazioni web lato server
- inizia a creare pagine e siti web dinamici
- 672 pagine in italiano