Fondamenti delle basi di dati
Corso MySQL a cura del prof. Pietro De Paolis
Ricerca dei dati in un archivio
A questo punto dopo aver memorizzato i dati nel nostro archivio tabella1 dovrebbe contenere i seguenti dati:
cognome | nome | comune | classe | scuola |
Bianchi | Giovanni | Milano | terza | ITIS |
Rossi | Federico | Bari | terza | ITIS |
... | ... | ... | terza | ITIS |
... | ... | ... | terza | ITIS |
Zerbino | Antonio | Roma | terza | ITIS |
Supponiamo di voler conoscere tutti i dati del sig. Bianchi; ci serve fare una ricerca sull'archivio seguendo la colonna cognome in modo che vengano visualizzati i dati di tutte le persone il cui cognome è Bianchi. Usiamo l'struzione Select.
Il comando MySQL per leggere dei valori contenuti in una tabella è il seguente:
SELECT nomecolonna1,nomecolonna2, , ...,nomecolonnaultima FROM nometabella WHERE condizionedaverificare
volendo cercare tutte le persone con cognome Bianchi la nostra richiesta sarà:
$richiesta="SELECT * FROM tabella1 WHERE cognome='Bianchi' ";
dove:
SELECT * FROM tabella1 indica che la ricerca va fatta in tabella1; l'asterisco * indica che desidero visualizzare tutte le colonne; volendo solo nome e cognome avrei messo:
SELECT cognome, nome FROM tabella1
Inoltre:
WHERE cognome='Bianchi' indica che la condizione da verificarsi è che il cognome sia uguale a Bianchi.
Quando vado a cercare il risultato della ricerca e lo metto in:
$risultato =mysql_query($richiesta);
il risultato della ricerca viene messo nella variabile $risultato; tuttavia essendo i dati contenuti molteplici ed imprevisti è necessario impostare una matrice in modo che i risultati vengano visualizzati sotto forma di matrice.
Per cui useremo l'istruzione php msql_fetch_array
Istruzione php:
$riga msql_fetch_array($stringarisultato)
E' una istruzione che carica ogni volta che viene eseguita una riga del risultato sotto forma di matrice ad una sola riga e tante colonne quante sono le colonne richieste nella istruzione SELECT.
Esempio
$riga = msql_fetch_array($risultato);
Mi crea una matrice di nome $riga dove:
$riga[0] contiene il cognome;
$riga[1] contiene il nome;
$riga[2] contiene il comune;
$riga[3] contiene la classe;
$riga[4] contiene la scuola;
La istruzione:
$riga = msql_fetch_array($risultato);
va eseguita più volte fino a leggere tutte le righe di $risultato. Per poter visualizzare tutte le righe del risultato occorre prima conoscere quante sono le righe trovate con la istruzione SELECT; per fare questo è possibile utilizzare la istruzione php mysql_num_rows.
Istruzione php:
$lunghezza = mysql_num_rows($risultato);
E' una istruzione che memorizza nella variabile $lunghezza il numero di righe contenute nel risultato della ricerca che si trova in $risultato.
Possiamo quindi usare un ciclo con l'istruzione for per visualizzare tutti i risultati della ricerca.
for ($t=0; $t<$lunghezza; $t++) {
$riga=mysql_fetch_array($risultato);
print("risultato è $riga[0] $riga[1] $riga[2] $riga[3] $riga[4] <br>");
};
Il nostro programma completo per visualizzare i dati di tutti gli alunni che hanno come cognome Bianchi sarà:
<?php
print ("Programma per inserie una riga di una tabella");
$nomehost = "miohost";
$utente = "mionome";
$parola = "miapasswors";
$nome = "nomedeldatabase";
$connessione=mysql_connect($nomehost,$utente,$parola);
$selezione = mysql_select_db($nome, $connessione);
$richiesta="SELECT * FROM tabella1 WHERE cognome='Bianchi' ";
$risultato =mysql_query($richiesta);
$lunghezza = mysql_num_rows($risultato);
for ($t=0; $t<$lunghezza; $t++) {
$riga=mysql_fetch_array($risultato);
print("risultato è $riga[0] $riga[1] $riga[2] $riga[3] $riga[4] <br>");
};
mysql_close($connessione);
?>
Salviamolo con il nome di cercodato.php ed eseguiamolo.
Corso di programmazione in MYSQL
Dizionario mysql e relativo php
Corso di programmazione in PHP
prof. Pietro De Paolis
Indice di tutte le pagine del sito