Vai all'home page di Interhobby
null.gif (114 byte) Interhobby
Web hosting service
Vai alla pagina dei Clienti

Come utilizzare
il server SQL

Inserire uno
script PHP in
una pagina HTML

Aprire e chiudere
un collegamento
con il database

Creare e
distruggere tabelle

Accedere
ai dati

Utilizzare le funzioni
più avanzate
Accedere ai dati
a cura di Elabora

Una volta creata una tabella dobbiamo essere in grado di poter inserire e leggere i dati dal nostro database.

A nostra disposizione abbiamo le seguenti istruzioni PHP:

  • mysql_query (già utilizzata per la creazione delle tabelle)
  • mysql_fetch_row

e i seguenti comandi SQL:

  • INSERT INTO
  • SELECT

Prima di recuperare i dati nel database, inseriamone uno. In questo esempio inseriamo una persona nel nostro database indirizzi:

<SCRIPT LANGUAGE="php">

/* Procedura di connessione e selezione */

...

/* Inseriamo Mario Rossi, via Cavour, 23 nella tabella indirizzi */

$sql="INSERT INTO indirizzi (nome, cognome, via, num_civ) VALUES ('Mario', 'Rossi', 'via Cavour', 23)";

/* Esegue la query */

if (!($result=mysql_query($sql, $conn)))
{echo "Errore nella query";}

/* Chiude la connessione al server */

...

</SCRIPT>

 

Ora leggiamo questo dato e inseriamolo in una pagina HTML attraverso una tabella. La funzione mysql_fetch_row ci permette di leggere un intero record e di inserirlo immediatamente in una variabile array. Ad ogni campo corrisponderà un elemento dell'array nello stesso ordine nel quale lo abbiamo specificato nella query con SELECT.

Ad esempio:

$sql="SELECT (nome, cognome, via, num_civ) from indirizzi where (nome='Mario')";

$result=mysql_query($sql, $conn);

$datarecord=mysql_fetch_row($result);

 

Nel vettore $datarecord avremo:

in $datarecord[0] la stringa 'Mario' corrispondente a nome;

in $datarecord[1] la stringa 'Rossi' corrispondente a cognome;

in $datarecord[2] la stringa 'via Cavour' corrispondente a via;

in $datarecord[3] il vaolre 23 corrispondente a num_civ;

In questo modo verrà letto soltanto il primo record che soddisfa alla nostra condizione (... where (nome='Mario')).

Inserendo la mysql_fetch_row in un ciclo while potremo leggere tutti i record che soddifano la nostra richiesta.

Ecco un esempio completo compresa la costruzione della tabella per visualizzare i dati:

<SCRIPT LANGUAGE="php">

/* Procedura di connessione e selezione */

...

/* Inseriamo Mario Rossi, via Cavour, 23 nella tabella indirizzi */

$sql="SELECT (nome, cognome, via, num_civ) from indirizzi where (nome='Mario')";

/* Esegue la query */

if (!($result=mysql_query($sql, $conn)))
{echo "Errore nella query";}

/* Esegue un ciclo sulla mysql_fetch_row */

echo "<TABLE>\n";
while ($datarecord=mysql_fetch_row($result))
{

/* Inizio della riga della tabella */

echo "<TR>\n";
$count=0;

/* 4 è il numero di campi nel record */

while ($count<4)
{

/* Stampa il valore del campo concatenandolo attraverso l'operatore "." alle stringhe di inizio e fine casella */

echo "<TD>".$datarecord[$count]."</TD>\n";
$count++;
}

/* Fine della riga di tabella */

echo "</TR>\n";
}

/* Fine della tabella */

echo "</TABLE>\n";

/* Chiude la connessione al server */

...

</SCRIPT>

Questo script è molto generico perché stampa tutti i campi in modo piuttosto brutale e senza nessuna elaborazione sul suo contenuto. Se un campo contenesse un link ed oltre a stamparlo volessimo renderlo attivo dovremmo scrivere:

...

echo "<TD><A HREF=\"".$datarecord[$count]."\">";
echo "$datarecord[$count]."</A></TD> \n";

...

In questo esempio abbiamo anteposto il backslash alle virgolette perché devono essere stampate e non stanno ad indicare la fine di una variabile di tipo stringa.

Ci si dovrà comportare in modo analogo con i caratteri $ \ e '. La stessa cosa si dovrà fare quando inseriamo all'interno del database stringhe che contengono uno di questi caratteri.

Per aiutarci in questo compito PHP implementa la funzione AddSlashes che fa tutto quanto è necessario.


Vai alla pagina precedente Vai alla pagina precedente Copyright © 1998 - Interhobby