Scheda 40 PHP - MYSQL - emmegiclick

Transcript

Scheda 40 PHP - MYSQL - emmegiclick
REGIONE
SICILIANA
Progetto cofinanziato dal Piano straordinario per il lavoro in Sicilia: opportunità giovani - Priorità 3: Formazione giovani
Anno Formativo 2013-2014 - Progetto Occupazione - Corso Webdesigner - Sede Trapani
Scheda 40
PHP - MYSQL
INTRODUZIONE
MySQL, definito Oracle MySQL, è un Relational
database management system, composto da un
client con interfaccia a riga di comando e un server,
entrambi disponibili sia per sistemi Unix o Unix-like
come GNU/Linux che per Windows, anche se
prevale un suo utilizzo in ambito Unix.
Uno dei programmi più popolari per amministrare i
database MySQL è phpMyAdmin (richiede un server
web come Apache HTTP Server ed il supporto del
linguaggio PHP). Si può utilizzare facilmente tramite
un qualsiasi browser.
CREAZIONE DI UNA TABELLA
Ogni db contiene delle tabelle dove sono
immagazzinati i dati. Una tabella è formata da campi (spazi virtuali in cui memorizzare ogni singolo dato) ed ogni
campo ha specifiche caratteristiche, ad esempio il campo Luogo rappresenta un numero di caratteri (in genere da 25
a 30) idonei per memorizzare qualsiasi località mentre il campo Prezzo rappresenta un valore numerico con cifre
decimali oppure il campo Datanascita rappresenta un certo numero di caratteri idonei per rappresentare una data del
calendario. Per creare
una nuova tabella
basta cliccare sul link
NUOVA
oppure
digitare Nome della
tabella, numero di
campi e cliccare su
esegui nel riquadro
Crea tabelle. Nel
primo caso (click su
Nuova) verrà chiesto il nome della tabella e il numero dei campi).
Per il nome tabella si consiglia di indicare un nome
breve, senza spazi, possibilmente (ma non è
obbligatorio), utilizzando caratteri alfabetici minuscoli.
Successivamente dovranno essere indicati il nome il
tipo e le caratteristiche (lunghezza e valori) per ogni
tipo di campo
CAMPI DI TIPO NUMERICO
I campi di tipo TINYINT, SMALLINT, MEDIUMINT, INT e BIGINT rappresentano numeri interi composti rispettivamente
da 1, 2, 3, 4 e 8 bytes. Il TINYINT può contenere 256 valori, che vanno da -128 a +127 oppure da 0 a 255 nel caso di
UNSIGNED. Allo stesso modo, SMALLINT può contenere 65536 valori, MEDIUMINT 16.777.216, INT oltre 4 miliardi,
BIGINT circa 18 miliardi di miliardi. I campi di tipo FLOAT e DOUBLE rappresentano i numeri in virgola mobile. M
rappresenta il numero totale di cifre rappresentate e D il numero di cifre decimali
CAMPI DI TIPO STRINGA
CHAR è una campo a lunghezza fissa (M) riempita con spazi a destra al momento della memorizzazione, che vengono
eliminati in fase di lettura. La lunghezza prevista va da 0 a 255 caratteri. VARCHAR è una campo a lunghezza variabile;
e la lunghezza massima dichiarabile è 65535 caratteri.
Modulo didattico: Linguaggio HTML e Java Script
Dispensa a cura del formatore: Dott. Mario Giurlanda - [email protected] - www.profmarioonline.altervista.org
REGIONE
SICILIANA
Progetto cofinanziato dal Piano straordinario per il lavoro in Sicilia: opportunità giovani - Priorità 3: Formazione giovani
Anno Formativo 2013-2014 - Progetto Occupazione - Corso Webdesigner - Sede Trapani
Scheda 41
PHP - GESTIRE I DATI DI UNA TABELLA MYSQL(1)
CONNESSIONE A TABELLA
Per utilizzare i dati di una tabella MSQL occorre innanzitutto collegarsi al database ed, in particolare alla tabella. Per
fare ciò è necessario utilizzare i seguenti comandi:
$db=mysql_connect($host,$user,$password) or die ("impossibile connettersi al
server");
mysql_select_db($database,$db) or die("impossibile connettersi al db");
naturalmente è necessario preventivamente definire $host,$user,$password, $database che ci sono stati forniti dal
nostro provider (con ALTERVISTA e sufficiente solamente $db = mysql_connect;)
DEFINIZIONE DI UNA QUERY PER LA SELEZIONE DEI DATI DA UTILIZZARE
$query="select * from NOMETABELLA order by NOMECAMPO";
con questo comando (ovviamente sostituendo a NOMETABELLA e NOMECAMPO i nomi reali della tabella e del campo)
si selezionano tutti i record della tebella orinati secondo il NOMECAMPO indicato. Se si omette order by NOMECAMPO
i record verranno selezionati secondo l'ordine di immissione. SE si vuole un ordinamento decrescente basta indicare
DESC dopo order by NOMECAMPO come ad esempio
$query="select * from NOMETABELLA order by NOMECAMPO DESC";
INVIO DELLA QUERY A MYSQL
$dbResult = mysql_query($query,$db);
$Num = mysql_num_rows($res);
ATTENZIONE: nel caso di aggiunta, modifica o cancellazione inserire $Num = mysql_affected_rows($db)
(con altervista $Num = mysql_affected_rows())
Con questo codice si invia la query a MYSQL e si ottiene il numero dei record selezionati. Tale valore viene acquisito
dalla variabile $Num
ACQUISIZIONE DEI DATI
for ($I=0; $I<$Num; $I++) {
$Campo1 = mysql_result($dbResult,$I,0);
$Campo2 = mysql_result($dbResult,$I,1);
$Campo3 = mysql_result($dbResult,$I,2);
. . . .
$CampoN = mysql_result($dbResult,$I,N);
COMANDI DI ELABORAZIONE DEI DATI
}
Con questo ciclo for si ottiene la lettura dei dati acquisiti dalla tabella MYSQL in riferimento alla query impostata in
precedenza
DISCONNESSIONE DALLA TABELLA
mysql_close($db);
Con questo comando ci si disconnette dalla tabella di MYSQL
Modulo didattico: Linguaggio HTML e Java Script
Dispensa a cura del formatore: Dott. Mario Giurlanda - [email protected] - www.profmarioonline.altervista.org
REGIONE
SICILIANA
Progetto cofinanziato dal Piano straordinario per il lavoro in Sicilia: opportunità giovani - Priorità 3: Formazione giovani
Anno Formativo 2013-2014 - Progetto Occupazione - Corso Webdesigner - Sede Trapani
Scheda 42
PHP - GESTIRE I DATI DI UNA TABELLA MYSQL(2)
INSERIRE RECORD IN UNA TABELLA
Per inserire un nuovo record in una tabella MYSQL, dopo aver effettuato la connessione (scheda precedente) è
necessario definire la seguente query
$query="INSERT INTO NOMETABELLA (CAMPO1, CAMPO2, CAMPO3) values ($VAR1, '$VAR2',
'$VAR3')";
NOMETABELLA deve essere sostituito con il nome della tabella, i nomi di campo CAMPO1, CAMPO2 CAMPO3 ecc
devono essere sostituti con i nomi reali dei campi della tabella rispettando eventuali caratteri maiuscoli o minuscoli. le
variabili $VAR1, $VAR2, $VAR3 ecc. devono essere sostituiti dai reali nomi delle variabili PHP che rappresentano i dati
da inserire in tabella. In caso di campi numerici con è necessario delimitare la variabile con apici ($VAR1 nell'esempio)
mentre per i campi di tipo stringa o data sarà necessario racchiudere le variabili fra apici ($VAR2 e $VAR3
nell'esempio).
MODIFICARE I DATI DI UN RECORD IN UNA TABELLA
Per modificare i dati di un record in una tabella MYSQL, dopo aver effettuato la connessione (scheda precedente) è
necessario definire la seguente query
$query="UPDATE NOMETABELLA SET NOMECAMPO1 = '$VAR1', NOMECAMPO2 = '$VAR2',
NOMECAMPO3 = '$VAR3', WHERE (NOMECAMPO = '$VAR')";
NOMETABELLA deve essere sostituito con il nome della tabella, i nomi di i nomi di campo CAMPO1, CAMPO2 CAMPO3
ecc devono essere sostituti con i nomi reali dei campi della tabella rispettando eventuali caratteri maiuscoli o
minuscoli. le variabili $VAR1, $VAR2, $VAR3 ecc. devono essere sostituiti dai reali nomi delle variabili PHP che
rappresentano i dati da inserire in tabella. In caso di campi numerici con è necessario delimitare la variabile con apici
($VAR1 nell'esempio) mentre per i campi di tipo stringa o data sarà necessario racchiudere le variabili fra apici ($VAR2
e $VAR3 nell'esempio). La modifica dei dati avverrà in tutti i record in cui sia soddisfatta la condizione espressa tramite
WHERE
ELIMINARE UN RECORD IN UNA TABELLA
Per eliminare un record in una tabella MYSQL, dopo aver effettuato la connessione (scheda precedente) è necessario
definire la seguente query
$query="delete from NOMETABELLA where (NOMECAMPO = '$VAR')";
Verranno eliminati tutti i record in cui sia soddisfatta la condizione espressa tramite WHERE
Modulo didattico: Linguaggio HTML e Java Script
Dispensa a cura del formatore: Dott. Mario Giurlanda - [email protected] - www.profmarioonline.altervista.org