Guida di base PhP/Mysql
Guide: Lista generale | Guida di base Php

Cos'è PHP?
 

Fino a qualche anno fa il web era formato da un certo numero di pagine statiche, ossia HTML puro, incapaci di aggiornare automaticamente i
propri contenuti o consentire al visitatore di interagire con la pagina stessa.

L'evoluzione del web, culminata nell'introduzione della dinamicità della pagina, ha avuto come protagonisti i linguaggi cosiddetti "lato
server" (più avanti spiegheremo il significato di questo termine) che hanno dato quel qualcosa che ancora mancava in internet e dato la
possibilità di sviluppi che fino a qualche anno fa erano impensati. 
Il PHP dunque è un linguaggio di programmazione (definito anche linguaggio di scripting) utilizzato per lo sviluppo di pagine web dinamiche,
uno dei più recenti in questo campo. 

Il PHP nasce a metà del 1994 e da allora il suo utilizzo è andato via via aumentando (grazie anche alla sua filosofia free) ed oggi vanta
qualcosa come oltre 250.000 siti che implementano questo linguaggio. 
Grazie al PHP (e a tutti gli altri linguaggi "lato server") è possibile consentire agli utenti di interagire con un ampio database, farli muovere in
un negozio virtuale, prenotare online un biglietto aereo e così via. 



 

Funzionamento del PHP: lato client, lato server
 

La differenza tra lato client e lato server sta tutta nel modo e da chi viene interpretata una pagina Web quando essa viene caricata. 

Una breve descrizione del funzionamento del PHP può senza dubbio aiutarci a capire questa differenza: 

quando un server Web predisposto per il PHP riceve una richiesta dal browser di un client iniziano una serie di operazioni: Il server: 

1) Legge ed individua la pagina sul server.
2)Esegue le istruzioni PHP contenute all'interno della pagina ed esegue tutti i comandi PHP. 
3) Rimanda la pagina risultante al Browser. 

Un esempio pratico potrebbe essere quello di una pagina in PHP che si prefigge di leggere una riga di un qualsiasi database, il server Web
esegue ed ottiene la riga dal database ed invia il tutto al browser del client generando codice HTML. 

Per questo motivo nella pagina risultante non si può vedere nessuna traccia del codice PHP, esso è stato già interpretato e "trasformato" in
HTML dall'interprete ( il PHP, a differenza di linguaggi come il C o il C++ è un linguaggio interpretato e non compilato ). 

Come fa il server a capire quando una pagina contiene del codice PHP? Molto semplice, dal formato della pagina. 

Ogni pagina che contiene PHP deve avere un formato opportuno ( .php o .php3 o .php4 ), più avanti vedremo come nel file di configurazione
di Apache vi sia una riga che indica al server stesso come trattare questo tipo di pagine.





 

Perchè scegliere PHP?
 

Come abbiamo visto nella prima lezione il PHP non è l'unico linguaggio interpretato presente nel mondo Web con cui si possono eseguire
pagine dinamiche, perché dunque scegliere questo linguaggio per soddisfare le proprie esigenze? 
Varie risposte possono essere date: in primo luogo PHP è un linguaggio molto semplice da utilizzare, a cominciare dalla sintassi derivata
direttamente da veri linguaggi di programmazione come C/C++, Perl, Java. 
In secondo luogo, nonostante esso sia un linguaggio interpretato può vantare prestazioni notevoli ulteriormente migliorate nella versione 4. 
Terzo, il PHP è un linguaggio molto flessibile che ci consente di fare davvero tutto, dalla creazione di immagini alla manipolazione e creazione
di documenti in pdf, dalla gestione dei cookies alla elaborazione dei form HTML e il supporto di molteplici tipologie di database. 

Guida di base PhP/Mysql
 Forse la vera forza del PHP sta senz'altro nella gestione dei database, con poche righe di codice è possibile accedere qualsiasi database,
estrapolare i dati che ci interessano e inserirli nella pagina Web. 
Un altro punto a favore del PHP è la sua natura OpenSource, quindi gratuita. Infine possiamo far rilevare l'alta portabilità del PHP; esso gira su
tutti in principali Web server ed in linea di massima non dobbiamo apportare nessuna modifica al codice quando lo spostiamo da un Web
server ad un altro ( la differenza è tra le piattaforme Microsoft e quelle Linux/Unix ).




 
 

Installazione di php4 e Apache
 

L'installazione sotto Linux è anch'essa molto semplice (a mio parere più semplice dell'installazione sotto Win32). Per chi fosse interessato ad
installare PHP e Apache su sistemi Windows rimandiamo alla guida Php in locale su Windows disponibile su questo stesso CD-ROM.

Iniziamo con lo scaricare i sorgenti dai rispettivi siti ( www.apache.org , www.php.net ). 
Avremo dunque i sue file php-4.0.4pl1.tar.gz e apache_1.3.20.tar.gz. 
Questi pacchetti contengono i file sorgente dei due programmi, prima del loro utilizzo dobbiamo compilare i vari file, assicuratevi di aver
installato il compilatore del C/C++. 
Scompattiamo i due file nella nostra directory personale ( ad esempio in /root ): gunzip file php-4.0.4pl1.tar.gz ; tar xvf php-4.0.4pl1.tar.gz ;
stessa cosa per Apache: gunzip apache_1.3.20.tar.gz ; tar xvf apache_1.3.20.tar.gz 
Dopo queste semplici operazioni avremo due nuove cartelle, apache_1.3.20 e php-4.0.4pl1. 
Prima di cominciare la compilazione e l'installazione vera e propria alcune premesse sono doverose: 

- per installare questi due pacchetti dovete avere i permessi di amministratore ( ossia accedere al sistema come "root" ); 
- installeremo il php direttemente all'interno dell'Apache e non come modulo; 
- Se avete un pc datato abbiate un pochino di pazienza e non interrompete mai la compilazione una volta iniziata; 
- Tutte queste operazioni devono essere eseguite dalla riga di comando;

Cominciamo: entriamo nella cartella dell'apache e scriviamo:

./configure -prefix="path/in/cui/vogliamo/installare/apache" [invio] 

Attendiamo che il file di configurazione crei il Makefile. 
Andiamo ora alla cartella del php e scriviamo: 

./configure -with-apache="path-dei-sorgenti-di-apache" -enable-track-vars-
prefix=path/in/cui/vogliamo/installare/php [invio] 

Quando il makefile è stato creato scriviamo: 

make [invio];



make install [invio];

Se l'operazione di compilazione non da nessun errore dovreste aver installato con successo il PHP. 

Ora occorre tornare nella cartella dei sorgenti di apache per ultimare la compilazione del Web server, anche qui scriviamo: 

./configure -enable-track-vars [invio] 

dopo aver riconfigurato Apache possiamo passare alla sua compilazione ed installazione: 

make [invio] 
make install [invio]

Alla fine della compilazione ( se tutto è andato bene ) dovreste avere un messaggio di successo. 

Fate partire Apache entrando nella sua sottocartella "bin" e digitando: 

Guida di base PhP/Mysql
 
./apachectl start

Vi consiglio di copiare questo file ( apachectl ) nella vostra directory "/bin" in modo da poter far partire l'apache da qualsiasi posizione
all'interno di Linux. 




 
 

Configuriamo PHP attraverso il php.ini
 

Prima di proseguire il nostro viaggio nell'immenso mondo del PHP occorre fermarsi un attimo per descrivere il funzionamento del file che lo
configura: php.ini. 

Attraverso questo file potete personalizzare alcune importanti impostazioni o abilitare/disabilitare molte funzioni del PHP. 
In questa lezione descriveremo solo le voci più importanti del file lasciando a voi il compito di esplorare le altre sezioni presenti quando avrete
una maggiore dimestichezza con il linguaggio. 
La prima voce che troviamo è "Language Options", 
nella prossima lezione spiegheremo il significato e l'uso di questa parte. 
Altra parte molto interessante è quella intitolata "Resource Limits". 
Nella prima voce possiamo settare il numero di secondi per l'expired di uno script ( 30 secondi di default ), nella seconda voce potete scegliere
la quantità di memoria RAM da riservare al PHP. 
Nella parte successiva, "Error Handing and logging", potete personalizzare i messaggi di errore in caso di sbagli nel codice. 
Vi consiglio di lasciare tutto com'è per ora, man mano che capirete gli sbagli che farete durante la scrittura del codice potete personalizzare i
messaggi d'errore. 
Nella sezione "Paths e Directories" ci sono varie voci molto interessanti da personalizzare: doc_roor à La cartella che contiene le pagine in php.
extension_dir à la directory in cui si trovano le estensioni per altri servizi del PHP ( solo per Win32 ).

Nella sezione "File Upload" potete settare tutti i valori per l'upload dei file direttamente dalle pagine web: File Upload à Settato su "ON"
permette l'upload dei file , diversamente per vietare questa possibilità scrivere "OFF". 

Upload_tmp_dir setta la cartella in cui riversare i file che arrivano dall'esterno, lasciate questo valore vuoto se volete settare all'interno dello
script il nome di questa cartella. 

Upload_max_filesize setta la grandezza massima dei file permessa nell'upload in mega. Per tutti coloro che hanno installato PHP sotto
Win32 nella sezione "Windows Extension" si possono abilitare/disabilitare i file dll che regolano alcuni servizi. 
Troverete all'interno dell'elenco i file per abilitare l'IMAP, la manipolazione/ creazione dei pdf, la manipolazione delle gif e vari altri servizi. 
Per abilitare il servizio occorre cancellare il punto e virgola iniziale, per disabilitarlo aggiungere il punto e virgola all'inizio. 
Nel php.ini sono presenti vari altri parametri: gestione della posta; direttive per mysql; direttive per msql; gestione dei cookies; gestione dei
log; Consiglio inizialmente di lasciare inalterato questo file ( pena il non funzionamento del PHP ) e di modificare certe voci solo dopo una
discreta conoscenza del linguaggio. 
Nelle lezioni dedicate al MySQL vi elencherò le voci che potete modificare per rendere ancora più efficiente questo servizio. 




  
 

Sintassi generale del linguaggio
 

Affinché l‘interprete PHP riesca a distinguere all‘interno del codice il linguaggio da interpretare ed eseguire ( PHP ) dall‘HTML occorre utilizzare
dei TAG particolari: 
Vediamo un piccolo esempio: 


Guida di base PhP/Mysql
<table>
<tr>
<td> 

<?php print “ Ciao”; ?>
</td>
</tr>
</table> 

Queste righe di codice stamperanno in una tabella la parola —Ciao“. In rosso possiamo distinguere il codice PHP delimitato dai tag <?php e ?>. 
L‘interprete PHP sa che tutto ciò che si trova all‘interno di questi delimitatori deve essere interpretato ed eseguito. 
Tutto ciò che si trova al di fuori dei tag PHP viene normalmente eseguito dal browser. 
Per tutti coloro che intendono avvicinarsi al mondo del PHP è comunque indispensabile una ottima conoscenza dell‘HTML in quanto, una volta
che lo script viene interpretato, il PHP restituisce semplice codice HTML. 
Esiste anche la possibilità di utilizzare altri tag per distinguere il codice dall‘html: 

<? …… ?> 

Questa sintassi è molto simile alla precedente ma il suo uso deve essere abilitato all‘interno del PHP3.ini. 
Nella sezione —Language Option“ dovete modificare il parametro —short_open_tag“ ed inserire —On“. 

<Script language=”php” ………</script> 

Questi tag sono attivi di default e possono risultare molto utili in quegli editor HTML visuali che non conoscono le estensioni PHP. 

<% ……. %> 

Questa è la sintassi utilizzata dall‘ASP e deve essere attivata per poter essere utilizzata. Sempre nel PHP3.ini nella sezione —Language Option“
dovete modificare il parametro —asp_tags“ su —On“. 
Altra regola fondamentale che voglio accennarvi ( ma che riprenderemo più volte nel corso della guida ) è il segno di fine comando composto
dalle —;“. 
Uno degli errori più diffusi per tutti coloro che si avvicinano per la prima volta al PHP è la dimenticanza del segno di fine comando che,
generando un errore, non fa concludere l‘esecuzione della pagina.

Anche in presenza di errori di questo tipo ( chiamati errori di sintassi ) il PHP ci viene incontro fornendoci un determinato messaggio di errore.
Se trovate un "parse error" molto probabilmente avete fatto un errore di sintassi come quello della dimenticanza del ; alla fine dell'istruzione. 




 

I commenti e la loro importanza
 

Vi chiederete perché iniziamo la trattazione del linguaggio proprio parlando dei commenti. 
Semplicemente perché credo che siano importantissimi, sia per chi inizia a programmare, sia per i programmatori esperti. 
I commenti rendono il codice più leggibile e modificabile, anche dopo tempo. I commenti non vengono eseguiti dall‘interprete per cui non
risparmiatevi in quanto una riga in più non cambierà la velocità di esecuzione dello script e nello stesso tempo vi aiuta a seguire il codice passo
passo in tutte le operazioni che eseguite. 
Il PHP supporta vari tipi di commenti: 

quelli in stile C++: 

// 

commento in PHP 



commenti in stile C: 

/* 

Commento in PHP 


Guida di base PhP/Mysql
*/ 
 
ed i commenti in stile Perl: 






 
 

Approfondimento: Variabili dinamiche
 

Il PHP pemette vari utilizzi per quanto riguarda le variabili, nelle prossime lezioni parleremo degli array mentre in questa lezione introduciamo
le variabili dinamiche.
Partiamo dall'assegnazione tradizionale di una variabile:

$variabile = "Ciao"; 

Poniamo ora il caso di avere l'esigenza di creare una nuova variabile che abbia come nome il valore della variabile sopra assegnata
( $variabile ).
E' possibile fare questo utilizzando le variabili dinamiche, scriveremo:

$$variabile = "mondo"; 

Con questa operazione il PHP esegue diverse operazioni: interpreta $$variabile partendo dalla parte interna dell'espressione ( $variabile ) ed in
questo modo crea una nuova variabile il cui nome è uguale a "Ciao" ed il valore è uguale a "Mondo".
Nel PHP si possono annidare le variabili all'interno di altre variabili fino a livelli infiniti ma è vivamente consigliato non spingersi oltre il secondo
livello per non rendere il codice illeggibile ad altre persone oltre che a noi stessi. 




 

Operatori
 

Per spiegare cosa sono gli operatori ed il loro utilizzo occorre introdurre alcuni nuovi termini che senz‘altro molti di voi già hanno visto in campo
matematico. 
In una espressione aritmetica 3 + 5 i numeri 3 e 5 sono detti operandi mentre il segno + è l‘operatore. 
Gli operatori sono dei segni che ci permettono di svolgere le principali funzioni all‘interno dei programmi PHP ( in tutti i linguaggi di
programmazione sono presenti gli operatori ). 
Per esempio, il segno = ci permette di attribuire un valore ad una stringa come abbiamo visto negli esempi delle lezioni precedenti, ( operatore
di assegnamento ) oppure il segno + ci permette di sommare due o più numeri e così via. 
Nel PHP esistono vari tipi di operatori, vi forniamo di seguito un breve elenco che sarà oggetto di studio e approfondimento in tutte le nostre
altre lezioni. 

Operatori Aritmetici: 
Sono gli operatori più semplici che ci permettono di svolgere le operazioni matematiche all‘interno degli script. 

$a + $b        // ( + ) La somma di $a e $b
$a - $b         // ( - ) La sottrazione fra $a e $b
$a * $b         // ( * ) Il prodotto di $a e $b
$a / $b          // ( / ) Il rapporto di $a e $b
$a % $b       // ( % ) Il resto della divisione di $a e $b 

Guida di base PhP/Mysql
 Gli operatori di confronto sono quelli che consentono di mettere in relazione tra loro due o più espressioni: 

$a == $b  ( == ) 

Confronta l‘uguaglianza del valore tra $a e $b ( stesso valore );

$a != $b   

   ( != ) $a e $b sono diversi;

$a < $b       

 ( < ) $a è minore di $b;

$a <= $b   

   ( <= ) $a è minore o uguale di $b;

$a > $b    

     ( > ) $a è maggiore di $b;

$a => $b     

 ( => ) $a è maggiore o uguale di $b; 

Utilizzeremo e spiegheremo nella pratica gli operatori di confronto quando affronteremo il controllo del flusso e le espressioni condizionali, in
quella stessa sede introdurremo anche gli operatori logici che ci permettono di unire più condizioni. 




 

Controllo del flusso: nozioni generali
 

Fino a questa lezione ci siamo occupati delle caratteristiche generali del PHP. Abbiamo visto le variabili, gli operatori in generale ed alcune altre
piccole regole su cui si basa il linguaggio.
Tutte le nozioni viste sinora sono basilari per iniziare a scrivere qualche semplice script ma senza il controllo del flusso non potremo mai
rendere una pagina veramente dinamica. 
Vi chiederete, cosa significa controllare il flusso? 
Ebbene, per rispondere a questa domanda occorre sapere che l‘interpretazione e la codifica del PHP avviene seguendo un preciso ordine
generale, dall‘alto verso il basso e da sinistra verso destra ( nello stesso modo in cui voi state leggendo questa lezione ). 
In molti casi ( molto spesso ) abbiamo bisogno di controllare questa interpretazione e dirigere il flusso a nostro piacere. 
Supponiamo che si voglia eseguire un comando solo se si verifica una certa condizione oppure ripetere un comando finché noi lo vogliamo e
tante altre azioni.
Tutte queste operazioni richiedono un controllo che va sotto il nome appunto di controllo del flusso e man mano che leggerete le prossime
lezioni vi accorgerete quanto questo controllo sia utile per realizzare pagine realmente dinamiche. 




 

Controllo del flusso: if
 

Tutte le varie formule che troverete all‘interno delle lezioni sul controllo del flusso vengono definiti costrutti. 
Il costrutto if permette di eseguire delle determinate operazioni solo se si verificano determinate condizioni. 
Vediamo un piccolo esempio pratico. 

Guida di base PhP/Mysql
Poniamo il caso di voler confrontare due variabili, solo se queste due variabili sono uguali stamperemo a video il loro valore, scrivere così: 

<?php 
$a=5; $b=5; 
 if( $a == $b) { 
print ” Il valore di a è uguale a $a”; 
print ” Il valore di b è uguale a $b”; 

?> 

Prima di commentare il nostro piccolo esempio vediamo di vedere la struttura del costrutto if: 

if (condizione) { 
blocco-istruzioni da eseguire nel caso la nostra istruzioni risulti vera. 


Potremo quindi commentare l‘esempio pratico in questo modo: 
Se ( la variabile $a è uguale alla variabile $b ) allora { 
Stampami a video il valore della variabile $a e $b 

Il costrutto if risulta molto semplice a parte qualche nuova regola; come potete notare non bisogna inserire alla fine della parentesi graffa di
chiusara il segno di fine istruzioni in quanto il costrutto if non è una vera istruzione ma solo uno strumento di controllo alle istruzioni inserite al
suo interno. 
Ma cosa succede se $a e $b fossero state diverse? 
La risposta è alquanto semplice, poiché la condizione non risulta vera il codice compreso nelle parentesi graffe non verrà eseguito. 
Il costrutto if ci offre delle ottime varianti per controllare ancora più il nostro codice, il costrutto else : 
Vediamo un altro esempio: 

<?php 
$a=5; 
$b=5; 
if ( $a == $b) { 
print ” I valori $a e $b sono uguali”; 
} else { 
print ” I valori $a e $b sono diversi”; 

?> 

Tradotto nella nostra lingua: se ( if ) $a è $b sono uguali allora stampa ( print ) a video la frase “ I valori $a e $b sono uguali“ altrimenti
( else ) stampa ( print ) a video la frase “ I valori $a e $b sono diversi“. 
Il costrutto else quindi ci consente di eseguire un secondo blocco di istruzioni nel caso la condizione risulti falsa. 
Esistono molte altre opportunità con il costrutto if, supponiamo di avere molte condizioni da eseguire una dietro l‘altra. 
Supponiamo di voler stabilire se, sempre date due variabili $a e $b, $a è maggiore, minore o uguale a $b, potremo scrivere in questo modo: 

If ($a<$b) { 
print “$a è maggiore di $b;


If ($a>$b) { 
print “$a è minore di $b; 


If ($a==$b) { 
print “$a è uguale di $b; 


Questo metodo senz‘altro funziona ma è troppo macchinoso e porterebbe a grosse difficoltà qualora le condizioni risultassero più di tre. In
questo caso il PHP ci viene incontro con un‘altra vaiante : il costrutto elseif: 
vi propongo la soluzione: 

If ($a<$b) { print “$a è maggiore di $b”; 

elseif ($a>$b) { print “$a è minore di $b”; 
} elseif ($a == $b) { print “$a è uguale di $b”; 


In questo modo abbiamo utilizzato un nuovo costrutto che ci ha permesso di unire i tre cicli if visti poco sopra. 
Sempre traducendo nella nostra lingua avremo che : 
se ( if ) $a è maggiore di $b stamperemo ( print ) a video —$a è maggiore di $b“ 
altrimenti se ( elseif ) $a è minore di $b stamperemo ( print ) a video —$a è minore di $b“ 
altrimenti se ( elseif ) $a è uguale di $b stamperemo ( print ) a video —$a è uguale di $b“ 
Il ciclo if è forse uno dei costrutti più utilizzati all‘interno di qualsiasi script in PHP. 
Nel suo uso date particolare attenzione alla apertura e chiusura delle parentesi graffe, molti programmatori utilizzano un piccolo trucco per
evitare questa dimenticanza, aprire e chiudere subito le parentesi e scrivere l‘istruzione al loro interno successivamente. 

Guida di base PhP/Mysql

 

 

Controllo del flusso: while
 

Molto spesso, in alcune pagine vi è l‘esigenza di ripetere l‘esecuzione di determinate funzioni fino a quando non si verifica una determinata
condizione. 
I due costrutti che vedremo in questa e nella prossima lezione servono a questo scopo e vengono chiamati costrutti di iterazione, in questo
capitolo inizieremo con il costrutto while. 
Se avete già studiato il costrutto if non avrete senz‘altro problemi ad assimilare la semantica del costrutto while in quanto presentano molte
somiglianze: 

While( condizione ) { 
Istruzioni da eseguire 


Traducendo while nel nostro linguaggio potremo definirlo così: finchè una determinata condizione non diventa vera esegui le istruzioni
comprese all‘interno delle parentesi graffe.
Il costrutto while è utilizzato soprattutto nella navigazione degli array ( che vedremo nelle prossime lezioni ) ma anche in moltissime altre
occasioni.
A scopo puramente didattico vediamo come possiamo ricavarci la tabellina del 2 con il costrutto while: 

<?php 
// definisco una variabile di comodo che chiameremo $a che rappresenterà uno dei 
// due membri della moltiplicazione ( l’altro è il 2 ) 
// poiché la tabellina parte dal numero 1 
$a = 1; 
// introduciamo il costrutto while 
while ( $a != 10 ) { 
// voglio sapere la tabellina del 2 fino a 10 
/* tradotto sarà così: finchè ( while ) $a è diverso ( != ) da 10( quindi finchè la condizione tra
parentesi risulterà vera ) esegui l’operazione che sarà */
print “( $a * 2 ) “; 
// prima di uscire dal costrutto while incrementiamo di una unità la variabile $a altrimenti 
// incorreremo nel più frequente errore nell’uso di questo ciclo, ossia un giro infinito 
// che finirà solo dopo il timeout del PHP 
// Nel costrutto while, finchè $a è diverso da 10 eseguirà sempre l’istruzione 
// che avete inserito nelle parentesi graffe, una volta che $a sarà uguale a 10 si 
// uscirà dal ciclo e lo script continuerà ad eseguire le istruzioni presenti dopo 
$a++; 
// Il ++ è un altro operatore del PHP, questo è una forma abbreviata del classico: 
// $a = $a + 1;
} ?> 

comodo no? 
L‘output di questo semplicissimo programma sarà: 2 4 6 8 10 12 14 16 18 20.
Inutile dire che questo esempio è stato fatto solo per farvi capire il funzionamento del while, vedremo script più complessi quando
analizzeremo Mysql e l‘estrapolazione dei dati da un database. 
Anche nel costrutto prestate particolare attenzione alla chiusura delle parentesi graffe ed assicuratevi che il ciclo non diventi infinito.
Per il costrutto while esiste una piccola variante che si differenzia da quella vista sopra per la modalità di esecuzione delle istruzioni comprese
tra parentesi graffe.
Nella sintassi tradizionale prima viene valutata la condizione e solo se vera viene eseguito il blocco istruzioni, nella variante do/while invece:

do 
{
blocco-istruzioni 

while ( condizione )

viene prima eseguito un blocco istruzioni e poi viene valutata l'istruzione, per i restanti cicli il funzionamento è identico a quello del costrutto
tradizionale.

Guida di base PhP/Mysql
 
Controllo del flusso: for
 

Un' altro ciclo per effettuare una ripezione è il costrutto for. La sua sintassi è quasi uguale a quella del while a parte la modalità di
funzionamento che presenta alcune interessanti varianti:

for ( condizione1, condizione2,condizione3 ) {
blocco-istruzioni
}

Il costrutto for si differenzia dal costrutto whil per via del fatto che il for viene utilizzato quando noi conosciamo il numero di ripetizioni da
eseguire.
Il for ha un funzionamento particolare, come potete voi stessi notare le condizioni tra parentesi sono 3 e non una come nel ciclo while.
Analiticamente può essere spiegato in questo modo: per prima cosa viene valutata la condizione1 ( una solo volta ), generalmente questa
prima condizione è una espressione, da qui inizia l'iterazione vera e propria: viene valutata la condizione 2, se falsa si esce dal ciclio, se vera si
esegue il blocco istruzioni.
Al termine di ogni operazione viene infine valutata la condizione3.
Per non creare troppa confusione per coloro che per la prima volta si trovano di fronte ad un ciclo di iterazione for vi ripropongo l'esempio fatto
con il while per la tabellina del 2. 
Un confronto diretto tra questi due costrutti vi farà senz'altro aprrezzare maggiormente le differenze tra questi cicli di ripetizione:

<?php
for ($a = 1; $a < 10; $a++ ) { 
print “( $a * 2 ) “;
?>

Come detto sopra: viene prima ( una solo volta ) valutata la condizione1 ( $a = 1 ), dopo parte l'iterazione e viene valutata la condizione2, se
$a è minore di 10 si eseguono le istruzioni altrimenti si esce dal ciclo.
Inoltre alla fine di ogni ripetizione viene valutata la condizione 3 che nel nostro caso incremente la variabile $a di 1 unità. 




 

Gli array
 

Non poteva non mancare in questa nostra guida una trattazione particolareggiata sugli array o vettori. 
Ho voluto parlarli di queste variabili appositamente dopo le lezioni sul controllo del flusso perché per poter utilizzare gli array occorre avere una
certa dimestichezza con i costrutti while e for. 
Questo non significa che gli array non possano essere utilizzati senza questi costrutti ma raramente incontrerete degli array senza trovare il
while o il for. 
Cos‘è un array? Un array è una variabile che contiene più valori. Ecco un piccolo esempio: 

$colori = array (“rosso”, “ verde”, “blu”); 

Con questa riga di codice abbiamo appena creato un array ( $colori ), il quale non è altro che una variabile con più valori al suo interno.
Potremmo a questo punto chiederci, come facciamo a visualizzare i valori della variabile $colori?
Per rispondere a questa domando occorre entrare ancora più in profondità e dire che nel PHP esistono due tipi di array: gli array ad indice
numerico e gli array associativi. 
Nel nostro caso l‘array $colori è un array ad indice numerico poiché il PHP assegna un numero univoco ai valori dell‘array in base al loro
inserimento. 
Per cui: 
$colori[0] sarà uguale a —rosso“ 
$colori[1] sarà uguale a —verde“
$colori[2] sarà uguale a —blu“ 
e così via se avessimo altri valori all‘interno dell'array. 

Ricordate che il primo valore nel PHP è sempre lo 0.
Nel PHP l‘utilizzo dell‘array è molto semplice in quanto non occorre dichiarare preventivamente quanti elementi saranno contenuti al suo
interno ma anzi è possibile aggiungere elementi anche durante l‘esecuzione dello script. Volendo aggiungere un 4° elemento all‘interno del
nostro array $colori basterebbe scrivere: 

$colori[]= “viola”; 

Guida di base PhP/Mysql
 Il PHP accoderà in automatico il valore viola agli altri presenti nell‘array e possiamo visualizzare il suo valore scrivendo: 

print $colori[3]; 

Concludiamo il discorso sugli array ad indice numerico fornendo un piccolo esempio di come poter scorrere gli elementi contenuti all‘interno di
un array, impiegheremo il costrutto for: 

<?php 
// visualizzeremo i valori dell’array $colori precedentemente creato 
$numero_elementi = count($colori); 
// la funzione count conta il numero di elementi presenti all’interno di un array 
for ($a = 0; $a< $numero_elementi; $a++) { 
print $colori[$a] 
// inizialmente $a sarà uguale a 0, quindi visualizzeremo il valore di $colori[0], poi
// $colori[1] e così di seguito finchè non arriveremo alla fine dell’array 

?> 

L‘output di questo script sarà: rosso , verde, blu, viola . Per quanto riguarda invece gli array associativi il discorso si semplifica ulteriormente
perché in questo caso siamo noi a scegliere il nome dell‘indice dei valori presenti all‘interno dell‘array.
Utilizzando l‘esempio dei colori potremo scrivere in questo modo il nostro array associativo: 

$colori[primo_colore] = “rosso”; 
$colori[secondo_colore] = “verde”; 

e così via…. 
In questo caso per visualizzare il secondo colore ci basterà rischiare l‘indice che noi stessi abbiamo attribuito al secondo valore, ossia: 

print $colori[secondo_colore]; 

L‘output sarà: verde. 

Gli array, man mano che faremo degli script sempre più complessi fungeranno da veri e propri magazzini per i nostri dati. 
Pensate alla realizzazione di una rubrica personale, invece di definire una variabile per ogni voce della rubrica potremo semplicemente fare un
array associativo che le comprenda tutte e dopo maneggiare i dati attraverso gli indici che noi stessi abbiamo attribuito alle varie voci. 
Ricordate che in PHP un array può contenere vari tipi di dato nello stesso array: lettere, numeri reali, numeri in virgola mobile ecc. ecc. 
Il PHP gestisce le stringhe di caratteri come veri e propri array ad indice numerico; se noi scriviamo: 

$stringa =“ Il mondo è bello “; 

potremo raggiungere qualsiasi singolo carattere contenuto nella variabile $stringa. 
Per cui: 

$stringa[0] sarà uguale al carattere I
$stringa[1] sarà uguale al carattere I
$stringa[2] sarà uguale al carattere —spazio“ 
e così via fino alla fine della stringa. 

Queste funzioni sono molto utili per eseguire il parsine di una stringa che potrete approfondire in lezioni più complesse.




 

Personalizziamo il codice: le funzioni
 

In determinati script complessi ( Forum, mailing list ) vengono compiute varie volte le stesse operazioni. 
La semplice connessione ad un database costituisce un operazione che va ripetuta in ogni pagina ed ogni qual volta dobbiamo fare un
operazione sulle nostre tabelle. 
Le funzioni ci aiutano ad evitare questi inutili sprechi di tempo fornendoci il modo di personalizzare il codice con delle funzioni fatte da noi. 

Già nel PHP ci sono varie funzioni che possiamo utilizzare per gli scopi più comuni, ad esempio la funzione strlen() calcola quanti caratteri sono
presenti in una stringa, la funzione time() calcola l‘ora e così via…. 
Una funzione può essere definita come un comando per effettuare una operazione: se $a contiene la stringa —Il mondo è bello“ la funzione
( comando ) strlen($a) ci fornirà il numero di caratteri della stringa contenuta in $a. 

Guida di base PhP/Mysql
 Tutti i comandi, una volta impartiti devono restituirci qualcosa e nell‘esempio sopra riportato la risposta dello script sarà 16. 
Il PHP ci offre delle funzioni di carattere generale ma nel contempo ci permette di poter creare delle nostre funzioni.
Poniamo che per ipotesi io debba fare in continuazione la somma di due numeri e visualizzare il risultato. Nel modo tradizionale dovrei fare in
questo modo: 

<?php 
$a = 5; 
$b = 5; 
$c = $a + $b ; 
print $c; 
?> 

Certo lo script non è molto lungo ma provate ad immaginare operazioni più complesse e più laboriose e scoprirete subito il vantaggio di poter
creare delle vostre funzioni.
La nostra funzione sarà così: 

function somma ($a,$b) { 
$c = $a + $b; 
print $c; 


Una volta dichiarata la funzione per eseguire la somma di due numeri e visualizzare il risultato sarà: somma(5,5); l‘output del programma sarà
10. 
Come potete notare abbiamo creato una funzione che è identica a quella vista poco sopra (strlen). Esaminiamo la sintassi della funzione: con la
parola function diciamo all‘interprete PHP che stiamo creando una nuova funzione, subito dopo function deve essere definito il nome della
funzione ( nel nostro caso somma ) che verrà poi utilizzato per richiamare la funzione stessa all‘interno del nostro programma. 
Dopo il nome seguono le parentesi tonde ( obbligatorie ), al loro interno dobbiamo inserire le variabili da passare alla funzione in modo che
possa eseguire su di esse le istruzioni che abbiamo inserito tra le parentesi graffe. 
Attenzione, mentre le parentesi tonde sono obbligatorie, non è obbligatorio inserire delle variabili da passare alla funzione in quanto magari è
la funzione stessa che ha la funzione ( scusate il gioco di parole ) di creare altre variabili. 
Prendete ad esempio una funzione per la generazione di un numero random compreso tra 10 e 20, scriveremo: 

<?php 
function random () { 
$a = rand(10,20); 
return $a; 

?> 

Questa funzione non neccessità di nessuna variabile esterna ma l‘abbiamo costruita solo per generare a sua volta una variabile. 
Il comando return indica alla funzione di restituire il valore che noi vogliamo che ci restituisca, in questo caso $c. 
Capisco che all‘inizio la pratica di creare nuove funzioni potrà senz‘altro risultare complessa ma sarà un utilissimo strumento per programmi. La
logica delle funzioni personalizzate stimola la programmazione modulare ( ogni funzione è uguale ad un modulo ) in cui ogni problema viene
suddiviso in problemi più piccoli per poi assemblare il tutto. 
Un‘altro indiscutibile vantaggio delle funzione è che potete utilizzarle in tutti i vostri programmi qualora abbiate bisogno di risolvere determinati
problemi. 




 

Premessa a Mysql
 

Mysql è un database relazionale open source.
Prima di spiegare le varie caratteristiche di Mysql occorre anzitutto spiegare cos'è un database e perchè viene utilizzato nelle appicazioni web.

Utilizzando la fantasia potremo paragonare i database ad una stanza piena di schedari. In altre parole un database ci aiuta a tenere ordinati i
nostri dati e poterli raggiungere in ogni momento e da qualsiasi parte.
I database naturalmente non vengono utilizzati solo in ambito web ma oggi in ogni azienda troviamo svariati database per organizzare
fatture,ordini,ecc.
Per il nostro scopo ( costruire pagine web dinamiche ) i database ci aiutano ad organizzare i tanti dati che possiamo raccogliere ( si pensi ad
una mailing list o un forum ) oppure per ordinare quello che vogliamo esporre ( si pensi ad un sito di e-commerce ).
Perchè PHP e Mysql?

Guida di base PhP/Mysql
 Mysql è un database molto veloce e professionale. Consente il salvataggio di grandi quantità di dati e l'accesso contemporaneo di molti utenti
( 101 ).
Il PHP contiene al suo interno numerose funzioni per la connessione dei database Mysql e per questo motivo che questa accoppiata sta
( sopratutto negli ultimi anni ) avendo un successo enorme.
Nel corso delle nostre lezioni sulla copia Mysql-PHP vedremo come iniziare a scrivere i nostri dati all'interno del database Mysql e come inserire
i dati presenti nel database all'interno delle nostre pagine.

Prima di iniziare una affermazione è d'obbligo. 
Molto spesso ( all'inizio ) si confonde SQL con Mysql. 
SQL non è una tipologia di database ma il linguaggio utilizzato per connettersi ad essi. Anche Mysql utilizza SQL per dialogare con il resto del
mondo. Utilizzando ancora la fantasia potremo dire che mentre Mysql rapresenta vari schedari in cui sono presenti i dati, SQL è il veicolo con il
quali questi dati vengono messi nelle nostre mani.




 

Installazione di Mysql: Linux
 

Installare Mysql è molto semplice, sia sotto win32 sia sotto Linux. Potete scaricare i pacchetti per questi due sistemi direttamente dal sito del
mysql ( www.mysql.com ).

In Linux, una volta scompattato il pacchetto nella vostra directory ( assicuratevi sempre di essere amministratori di sistema ) non vi resta che
far partire lo script che in automatico genera il make file:

./configure[invio]


se volete installare Mysql in una directory diversa da quella di default potete scrivere:

./configure --prefix=[percorso e nome della directory in cui volete installare Mysql]


Quando lo script finisce la configurazione automatica potete installare i file con:

make [invio]

e

make install [invio]


Una volta installato inizializzate il database creando delle tabelle di sistema: spostatevi nella directory in cui avete installato Mysql, accedete
alla sottodirectory /bin ed eseguite:

./mysqk_install_db


Infine non vi resta che far partire il demone del mysql digitando:

./safe_mysqld &


Il simbolo & serve per far eseguire il demone in background.
Se non ricevete errori durante l'avvio del demone Mysql è stato installato ed avviato con successo nella vostra macchina. Non ci rimane che
abilitare le funzioni nel PHP per il Mysql: dobbiamo ricompilare PHP.

Andiamo nella directory dove si trovano i sorgenti del PHP e riconfiguriamo l'engine in questo modo:

./configure --prefix-use-mysql=[directory in cui avete installato Mysql] [invio]

Guida di base PhP/Mysql
 rinstalliamo PHP scrivendo:

make [invio]

e

make install [invio]
 

Installazione di Mysql: W in32
 

L'installazione e l'esecuzione di Mysql nei sistemi Win32 è semplificata rispetto all'installazione per Linux in quanto l'eseguibile che scaricate da
www.mysql.com si occupa di installare automaticamente i file.

Terminata l'installazione ( la cartella di installazione di default è c:/mysql ) per avviare mysql dovremo accedere alla sottodirectory c:/mysql/bin
attraverso DOS e digitare quanto segue:

start mysqld-opt --skip-name-resolve --skip-grant-tables --language=italian [invio] 
Da questo momento Mysql è in esecuzione in Background nel sistema, per terminare l'esecuzione digitare quanto segue sempre da DOS e
sempre al'interno della cartella bin:

mysqladmin -u root shutdown 


Nei sistemi Win32 la configurazione del PHP non va cambiata in quanto le funzioni per il Mysql vengono attivate in automatico durante
l'installazione. 
 

Mysql: organizzazione interna
 

Se non avete mai usato o visto un database questa lezione cercherà di spiegarvi in parole semplici come è organizzato il database Mysql.

Come possiamo vedere dall'immagine:

 23/08/2003
mhtml:file://F:\Siti%20Web\Guida%20Php-MySQL\2.Guida%20 di%20base%20PhP-Mysql.mh t


Guida di base PhP/Mysql
  

Un database è organizzato in tabelle che possono avere svariate colonne organizzate in righe.
I nostri dati vengono inseriti nei campi con una catalogazione ordinata per colonne.
In una ipotetica Mailing List costruiremo una tabella con una colonna chiamata e-mail ed all'interno dei campi di quella colonna potremo
inserire tutti gli indirizzi dei nostri utenti.

Durante l'inserimento, se la colonna è presente Mysql creerà una nuova riga per ogni dato che noi inseriamo.
Naturalmente questo è un piccolo esempio scolastico. Un database articolato potrà avere più tabelle organizzate in più colonne collegate tra di
loro.

Per accedere al database, inserire i dati, modificarli e qualsiasi altra azione utilizzeremo le funzioni che PHP ci mette a disposizione nel suo
corredo di funzioni. Assieme a PHP utilizzeremo SQL che sarà il linguaggio che utilizzeremo per interfacciare PHP con Mysql.

Possiamo anticipare già da ora come deve essere organizzata una conessione al database.
Per poter prendere i dati dal nostro database occorre stabilire anzitutto una connessione con questo, pensando ancora una volta a Mysql come
una stanza contenente tutti i nostri dati quando instauriamo una connessione non stiamo facendo altro che aprire la porta di questa ipotetica
stanza.
Una volta connessi possiamo inserire,modificare,cancellare i dati, le colonne, le tabelle del database.
Quando finiamo di fare tutte le operazioni dobbiamo chiudere la connessione ed liberare le risorse del sistema per altri utenti.


Queste sono le operazioni che dobbiamo memorizzare. Da ora in poi vedremo come fare questo nella pratica.

Breve introduzione a SQL
 

Quasi tutti i database presenti sul mercato per comunicare con l'esterno utilizzano il linguaggio creato dalla IBM molti anni fa che va sotto il
nome di SQL.

Anche PHP per comunicare e raccogliere i dati di un database Mysql utilizza SQL. Questa lezione non vuole addentrarsi nel mondo del SQL ma
solo riassumere tutte le funzioni di questo linguaggio riguardo l'interrogazione dei database.
All'interno di html.it potete trovare una guida molto esaustiva di questo linguaggio molto semplice.

SQL raccoglie al suo interno delle istruzioni abbastanza intuitive rivolte al database che risponde alla richiesta inviando i dati:

Poniamo di avere una tabella chiamata "ordini" formata da 2 colonne denominate rispettivamente "ordini_da_eseguire" e "ordini_eseguiti":

con l'istruzione:

SELECT * FROM ordini_eseguiti


chiedo al database di inviarmi tutti i dati contenuti della tabella "ordini", il segno * sta per tutti.
Avrei che potuto richiedere i dati di una sola colonna specificando il nome della colonna:
Guida di base PhP/Mysql
 
SELECT ordini_eseguiti FROM ordini


in questo modo.

Come potete notare le istruzioni sono molto semplici e concise. Prima di proseguire in questo nostro viaggio consigliamo comunque una lettura
veloce di tutti gli altri comandi SQL come:

CREATE 
ALTER
INSERT
ORDER BY
JOIN
CROSS JOIN
RIGHT JOIN
INTO
WHERE  

Prima Fase: connessione a Mysql
 

Nelle precedenti lezioni abbiamo visto come funziona un database Mysql ed abbiamo parlato delle tre fasi caratteristiche di una lettura delle
tabelle: connessione, manipolazione dati e disconnessione.
Nell' ultima lezione abbiamo invece introdotto il linguaggio da utilizzare nella fase della manipolazione dei dati.

In questa lezione e nelle successive vedremo come unire tutti questi elementi con il nostro PHP.
Più volte vi ho detto che PHP contiene molte funzioni specifiche per Mysql, vedremo di esaminare le più importanti ed impareremo ad inserire
modificare i nostri dati.

La prima cosa da fare è la connessione al Mysql. A questo riguardo PHP ci fornisce una funzione apposita: mysql_connect.

La sintassi della funzione di connessione è la seguente:

<?php

mysql_connect(nome_host,nome_utente,password);

?> 


Il nome utente e la password sono indispensabili in quanto Mysql è un database molto sicuro e non si può accedere ad esso senza aver prima
creato un account.
Se state provando Mysql in locale potete tranquillamente lasciare vuoti questi 2 campi. Se invece dovete provare i vostri script nel vostro sito
dovete richiedere lo User e la Password ai vostri amministratori di sistema. Per quanto riguarda il nome dell'host esso è quasi sempre localhost,
per maggiore sicurezza potete richiedere anche questo dato ai vostri amministratori di sistema.

Vediamo uno script completo per la connessione:

<?php

// script per la connessione a mysql
 

$host = 'localhost';
$user = 'vostro_user';
$password = 'vostra_password';
mysql_connect($host,$user,$password) or die ("Non riesco a connettermi");


 Pagina 16 di 22
Guida di base PhP/Mysql
print "Connessione eseguita";

// fine script di connessione

?> 


La funzione "die" ci permette di stampare a video la scritta compresa tra virgolette nel caso la connessione non vada a buon fine. Nel caso PHP
non riesca a connettersi a Mysql vedremo la scritta "Non riesco a connettermi al database", nel caso contrario vedremo la scritta "Connessione
eseguita".

Abbiamo fatto per metà la prima fase, ora per manipolare i nostri dati dobbiamo selezionare il database da utilizzare.
Mysql permette, per ogni account, illimitati database.

Se non abbiamo ancora creato nessun database dobbiamo prima crearlo e poi selezionarlo, utilizzeremo quindi varie funzioni PHP nel prossimo
script:

<?php

// script per la connessione, creazione e selezione di un database
// Mysql


// Mi connetto a Mysql

$host = 'localhost';
$user = 'vostro_user';
$password = 'vostra_password';
mysql_connect($host,$user,$password) or die ("Non riesco a connettermi");

print "Connessione eseguita";
// Creo il database "prova"


mysql_create_db("prova")or die ("Non riesco a creare il database");


// seleziono il database appena creato


mysql_select_db("prova") or die ("Non riesco a selezionare il database");

print "Connessione, creazione, selezione del database eseguita";

// Fine script
?> 


Con questo script abbiamo completato la fase di connessione ad un database Mysql.

Abbiamo visto due nuove funzioni PHP:

mysql_create_db("nome_database"); 


e

mysql_select_db("nome_database"); 


Notate che in ogni funzione abbiamo inserito l'istruzione die, questo ci aiuta in caso di problemi ad identificare subito il perchè degli errori e la
loro risoluzione.
Nella prossima lezione analizzeremo la manipolazione dei dati.


Guida di base PhP/Mysql
 
 
 
Manipolazione dati: lettura, inserimento
 

Ora che abbiamo creato la nostra tabella possiamo iniziare ad inserire i dati. Ripeto che stiamo cercando di costruire un database che
memorizzi tutti gli indirizzi e-mail di colore che si iscrivono. Nelle precedenti lezioni abbiamo costruito una tabella formata da tre colonne: la
prima che memorizza un numero identificativo per ogni dato che inseriremo, la seconda che memorizza il nome e il cognome dell'utente e la
terza serve per l'indirizzo e-mail. Vediamo ora i comandi SQL e le funzioni PHP per inserire i dati.

<?php

// script per inserire i dati nella tabella mail
// per comodità supponiamo di esserci già connessi al database



// voglio inserire 1 nuovi indirizzi, scriveremo:

mysql_query("insert into mail (id_utente, nome_cognome,mail) values ('1','Mario
Rossi','mario@suosito.com')");


// fine script

?> 


Con questo piccolo script abbiamo inserito un nuovo indirizzo all'interno della tabella mail. Non bisogna specificare a Mysql di creare un nuovo
campo in quanto questo avviene in automatico con l'uso dell'istruzione SQL "insert into".

Vi voglio riproporre la sintassi dell'istruzione INSERT INTO perchè è una delle istruzioni più utilizzate e la più complessa perchè molto articolata:

INSERT INTO nome_tabella (nome_campi) values ( dati_da_inserire_nei_campi);

Notate che l'elenco dei dati presente nella seconda coppia di parentesi tonde deve corrispondere all'ordine dei campi che abbiamo inserito nella
coppia delle prime parentesi.
Ripetermo lo script tutte le volte che dobbiamo inserire un nuovo campo.

Ora che la nostra tabella contiene qualche dato possiamo leggere al suo interno per sapere quali dati ci sono al suo interno, per far questo
utilizzeremo l'istruzione SQL "SELECT":

<?php

// script per leggere i dati contenuti in un campo della tabella 
// mail 
// per comodità supponiamo di esserci già connessi al database


$dati = mysql_query("select * from mail");

$array = mysql_fetch_array($dati);


// fine script


?> 


L'istruzione SELECT chiede i dati di una riga della tabella che abbiamo selezionato nell'istruzione FROM ( nel nostro caso la tabella si chiama
mail ). Per poter utilizzare i dati che Mysql invia dobbiamo utilizzare la funzione mysql_fetch_array che crea un array associativo che ha
come indice il nome delle colonne, continuando lo script avremo che per visualizzare i dati che abbiamo estrapolato dal database scriveremo:

<?php

// codice per leggere i dati contenuti in un campo 


print "Contenuto della colonna id_utente: $array[id_utente] ";


print "Contenuto della colonna nome_cognome: $array[nome_cognome] ";

Guida di base PhP/Mysql


print "Contenuto della colonna mail: $array[mail] "; 

?> 
 

Naturalmente questo script legge una riga per volta e se nella istruzione SELECT non selezionate nulla Mysql restituirà i dati dell'ultima riga
inserita, diversamente potete controllare il flusso dei dati Mysql con l'istruzione WHERE:

<?php

// Volendo visualizzare i dati dell'utente Mario Rossi avrei scritto 
// in questo modo l'istruzione SQL



$dati = mysql_query("SELECT * FROM mail WHERE nome_cognome='Mario Rossi");

$array = mysql_fetch_array($dati);


// fine script


?> 


Nella nostra lingua l'istruzione SQL risulterebbe così organizzata:
"Seleziona (SELECT) tutto (*) dalla tabella ( FROM ) mail dove ( WHERE ) il la colonna nome_cognome è uguale a Mario Rossi.

Questo script va bene nel caso dovessimo leggere solo una riga della tabella, nel caso in cui vogliamo invece leggere tutto il contenuto della
tabella dovremo aggiungere un ciclo while così organizzato:

<?php

// script per leggere i dati contenutiin tutti i campi della tabella 
// mail 
// per comodità supponiamo di esserci già connessi al database


$dati = mysql_query("select * from mail");

while ( $array = mysql_fetch_array($dati)) {


print "Contenuto della colonna id_utente: $array[id_utente] ";


print "Contenuto della colonna nome_cognome: $array[nome_cognome] ";


print "Contenuto della colonna mail: $array[mail] "; 





// fine script


?> 


Con questo script finchè la tabella mail non sarà vuota PHP creerà l'array associativo contenente i dati letti dal database

 

Manipolazione dati
 


 Pagina 19 di 22
Guida di base PhP/Mysql
Le ultime importanti nozioni sulla manipolazione dei dati inseriti nel database riguardano la modifica e la cancellazione dei dati. A questo scopo,
rispetto agli script visti precedentemente riguardo l'inserimento cambiano solo le istruzioni SQL. Per la modifica utilizzeremo l'istruzione
UPDATE mentre per la cancellazione l'istruzione DELETE.

Consiglio vivamente di utilizzare queste due istruzioni con cautela per non rischiare di cancellare o modificare tutti i dati che avete inserito
all'interno della tabella.

La modifica:

<?php


// script per la modifica dei dati nella tabella mail

// supponiamo di essere già connessi al database


$dati = mysql_query ("UPDATE mail SET mail='mario@tiscalinet.it' WHERE nome_cognome='MARIO ROSSI'");

// fine script



?> 


L'istruzione UPDATE è molto semplice, ricordate sempre di specificare il WHERE perchè altrimenti la modifica verrà eseguita in tutti campi della
tabella mail ( per questo consiglio l'uso con cautela ).

Vediamo la sintassi dell'istruzione UPDATE:

UPDATE nome_tabella SET nome_colonna='nuovo_valore' WHERE nome_colonna='identificativo_colonna';

Nella creazione della tabella abbiamo all'inizio previsto una colonna che contiene l'dentificativo numerico del campo. Questo indice è
importantissimo per le istruzioni di modifica e di cancellazione perchè in questo modo ogni riga ha un numero univoco e non si rischia di
cancellare/modificare altre righe. Utilizzando l'identificativo avremo scritto:

<?php


// script per la modifica dei dati nella tabella mail

// supponiamo di essere già connessi al database


$dati = mysql_query ("UPDATE mail SET mail='mario@tiscalinet.it' WHERE id_utente='1'");

// fine script



?> 


Molto più semplice e senza rischio d'errore ( pensate se ci fossero stati due Mario Rossi all'interno della tabella mail).

L'istruzione DELETE permette di cancellare un intera riga dalla tabella. Utilizzate questa istruzione con molta cautela in quanto Mysql non
chiede conferme, neanche per la cancellazione di grosse quantità di dati:

<?php


// script per la cancellazione di tutti i dati nella tabella mail

// supponiamo di essere già connessi al database


$dati = mysql_query ("DELETE FROM mail");


// fine script



?> 


Con questo script cancelliamo tutte le righe presenti all'interno della tabella mail. Nel caso volessimo cancellare una determinata riga

Guida di base PhP/Mysql
 inseriremo nell'istruzione SQL l'istruzione WHERE, come segue:

<?php


// script per la cancellazione di una riga nella tabella mail

// supponiamo di essere già connessi al database


$dati = mysql_query ("DELETE FROM mail where id_utente='1'");


// fine script



?> 


Questo script cancellerà la riga in cui l'id_utente è uguale a 1. 




 

Altre funzioni PHP-Mysql
 

PHP contiene molte funzioni e, per non confondere troppo le idee, vi proponiamo un semplice elenco di quelle più importantanti impegnandoci
nel breve futuro a proporvi altra guide pià approfondite solo sul Mysql:

mysql_num_rows()
Restituisce il numero di righe interessate dall'istruzione SQL:

<?php

// mysql_num_rows


$dati = mysql_query("SELECT * FROM mail");

$numero_righe = mysql_num_rows($dati);


?> 


mysql_insert_id()
Restituisce l'ultimo id ( se presente ) della riga interessata dall' ultima operazione di INSERT:


<?php

// mysql_insert_id


$dati = mysql_query("INSERT INTO mail (id_utente, nome_cognome, mail values ('2', 'Mario Rossi',
mario@tiscalinet.it') ");

$ultimo_id = mysql_insert_id();


?> 


mysql_drop_db
Elimina un database Mysql:

<?php

Guida di base PhP/Mysql
// mysql_drop_db


mysql_drop_db("nome_database_da_eliminare");


?> 
 

mysql_list_dbs
Restituisce la lista dei database presenti nel server Mysql:

<?php

// mysql_list_dbs

$connessione = mysql_connect($host, $user, $password);

mysql_list_dbs("$connessione");


?> 


mysql_list_tables
Restituisce la lista delle tabelle presenti nel database selezionato:

<?php

// mysql_list_tables


mysql_list_tables("nome_database");


?> 


Questo l'elenco delle funzioni più usate, potete trovare l'elenco completo delle funzioni sul sito del PHP www.php.net nella sezione funzioni per
Mysql



 

Chiusura di una connessione Mysql
 

Una volta conclusa la fase di manipolazione dei dati è sempre opportuno chiudere tutte le connessioni al server Mysql e magari liberare la
memoria occupata dai risultati della query SQL.

E' buona norma specificare sempre queste due funzioni per non caricare inutilmente il server che sta eseguendo i vostri script e dare la
possibilità a tutti gli utenti di poter accedere al database.

Com ultimo esempio vi fornisco uno script completo di connessione, manipolazione e disconnessione ad un server Mysql.

<?php



// Mi connetto a Mysql

$host = 'localhost';
$user = 'vostro_user';
$password = 'vostra_password';
mysql_connect($host,$user,$password) or die ("Non riesco a connettermi");

print "Connessione eseguita";

Guida di base PhP/Mysql

// seleziono il database appena creato


mysql_select_db("mail") or die ("Non riesco a selezionare il database");

print "Il database è stato selezionato";


// visualizzo tutti i campi presenti nella tabella mail 


$dati = mysql_query("select * from mail");

// inizio il ciclo while per la visualizzazione delle righe


while ($array = mysql_fetch_array($dati) {
print "Contenuto colonna id_utente: $array[id_utente] <br>";
print "Contenuto colonna nome_cognome: $array[nome_cognome] <br>";
print "Contenuto colonna mail: $array[mail]"; 
}

// libero la memoria occupata dall'istruzione SELECT

mysql_free_result($dati);

// chiudo la connessione al server Mysql

mysql_close();


// Fine script



?> 


Da notare che la funzione mysql_close può non contenere argomenti in quanto Mysql chiuderà automaticamente tutte le connessioni aperte. 

Commenti

Post popolari in questo blog

INSTAFETCH - Android -

I pesci abissali. Zoologia marina.

La Centrale Idroelettrica.