PROGRAMMIAMO
PHP - DB: semplici query
Inserimento e prelievo di dati in tabella

Vediamo adesso come è possibile inserire e prelevare dati dalla semplice tabella "Rubrica" creata precedentemente su Altervista (nel caso di un DB creato con Easyphp cambiano solo i dati di accesso al DB). Le prime operazioni necessarie sono ovviamente quelle relative alla connessione con il DB che abbiamo già visto:

$db_host = "localhost";
$db_user = "programmiamo";
$db_name = "my_programmiamo";

$db = mysql_connect($db_host, $db_user);
if ($db == FALSE)
die ("Errore nella connessione.");

$ris = mysql_select_db($db_name);
if ($ris == FALSE)
die ("Errore nella selezione del DB.");

Per inserire dati in una tabella e in generale per interagire col DB, occorre effettuare delle query. Le query sono istruzioni in linguaggio SQL che, per il PHP, sono delle normali stringhe senza particolare significato. Non sono infatti istruzioni PHP!

Un semplice esempio di query per l'inserimento di valori in tabella è questo:

$query = "INSERT INTO Rubrica (Nome, Cognome, Indirizzo, Telefono) VALUES ('James', 'Bond', 'Londra','007')";

La sintassi è abbastanza semplice:

INSERT INTO nome tabella (elenco campi) VALUES (elenco valori)

Una volta creata la stringa contenente la query, bisogna inviarla al DB. Per fare ciò bisogna usare la funzione mysql_query, alla quale bisogna fornire la stringa contenente la query e l'handle ricavato al momento dell'apertura della connessione con la funzione mysql_connect. Nel nostro esempio:

$query = "INSERT INTO Rubrica (Nome, Cognome, Indirizzo, Telefono) VALUES ('James', 'Bond', 'Londra','007')";

if (mysql_query($query))
echo "Inserimento corretto<br>";
else
echo "Errore durante l'inserimento<br>";

Anche la funzione mysql_query torna un valore FALSE o TRUE a seconda che l'inserimento sia andato a buon fine oppure no. Allo stesso modo possiamo divertirci a scrivere altre query e a inserire altri record nella nostra tabella, con altri nomi e cognomi.

Supponiamo adesso di voler estrarre dalla tabella i valori dei campi Cognome di tutti i record. Ci serve anche in questo caso una query:

$query = "SELECT Cognome FROM Rubrica";
$result = mysql_query($query);

Osservate che adesso abbiamo salvato il valore di uscita di mysql_query nella variabile $result. Infatti, in questo caso la mysql_query torna un valore (si chiama identificativo di risorsa) che ci serve per "prelevare" dal DB i risultati della query. Questa è una "stranezza" delle funzioni in PHP: a seconda del tipo di query, la funzione mysql_query torna semplicemente TRUE o FALSE oppure (come in quest'ultimo caso) un identificativo di risorsa.

Vediamo ora come si può fare, nel modo più semplice e rozzo possibile, a prelevare dati dalla tabella:

$query = "SELECT Cognome FROM Rubrica";
$result = mysql_query($query);

while ($row = mysql_fetch_array($result))
{
echo $row['Cognome']."<br>";
}

$row è un vettore associativo, cioè un vettore i cui elementi non sono numerati progressivamente come in un normale vettore numerico. Al contrario, gli elementi di $row sono identificati dai nomi dei campi nella tabella. In altre parole, gli elementi sono: $row['Nome'], $row['Cognome'], $row['Indirizzo'] e $row['Telefono'].

L'istruzione

$row = mysql_fetch_array($result)

preleva un singolo record (cioè una riga in tabella) in base alla query di selezione indicata da $result e lo salva nel vettore $row. Quando mysql_fetch_array torna il valore FALSE vuol dire che non ci sono più righe da esaminare e il ciclo termina. L'istruzione echo eseguita nel ciclo serve semplicemente per visualizzare il valore contenuto nel vettore.

 

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it