Gestione tabella con Mysql e PHP - EINAUDI

Transcript

Gestione tabella con Mysql e PHP - EINAUDI
Spiegazioni esercizio “Gestione Tabella con PHP e MySQL
foglio_di_stile.css (foglio di stile esterno)
Questo file contiene:
1. la struttura generale delle quattro pagine web dinamiche: index.php, inserisci.php, modifica.php,
cancella.php
2. il formato e i colori delle form utilizzate
3. il formato e i colori dei pulsanti utilizzati.
Struttura delle pagine:
E’ costituita dai seguenti Box Div:
contenitore
contenuti
intestazione
footer
Formato, colori, caratteri …. Delle form: classe formato_form
Formato e colori dei pulsanti ovali:
classe fsSubmitButton
Formato e colori dei pulsanti rettangolari: classe fsSubmitButton
index.php (pagina web dinamica)
Contiene una parte in linguaggio php e una parte in linguaggio html contenente un css interno utilizzato per
definire i Box Div (tutti conglobati nella div “contenuti” del css esterno) :
zona_visualizzazione
inserisci
modifica
cancella
e per definire i colori e il formato della tabella html contenente l’elenco dei dati contenuti nella tabella del
database.
La zona di codice php ha la funzione di:
1. stabilire una connessione con il database utilizzato,
2. preparare e eseguire la query di selezione in linguaggio sql per prelevari i dati dalla tabella del
database e memorizzarli in una variabile stringa,
3. impaginare in html i risultati estratti dal DB creando un elenco tabellare
Gestioene tabella con mysql e php - ultimo aggiornamento 01/06/2016
Pag. 1
4. preparare e eseguire una query di selezione in linguaggio sql per estrarre i dati (descrizione e
codice) da inserire nella variabile stringa $OUT2 per realizzare una combo box che verrà utilizzata
sia nella “modifica” che nella “cancellazione”
5. chiudere la connessione con il DB.
La zona relativa al linguaggio HTML avrà il compito di:
1.
2.
3.
4.
5.
definire l’intestazione della pagina,
definire l’intestazione della tabella di visualizzazione
tramite l’istruzione php: <?php print $OUT1 ?> visualizzare i dati presenti nella tabella del DB,
definire la form per l’inserimento con pulsante che rimanda alla pagina “inserisci.php”,
definire la form per la modifica con la rispettiva combo box di selezione descrizione e con pulsante
che rimanda alla pagina “modifica.php”,
6. definire la form per la cancellazione con la rispettiva combo box di selezione descrizione e con
pulsante che rimanda alla pagina “cancella.php”,
7. definire la zona footer.
Query di selezione per estrarre dati da tabella:
SELECT nome_tabella.campo1,
nome_tabella.campo2,
…………………….
nome_tabella.nome_campo
FROM nome_database.nome_tabella
ORDER BY ……..
inserisci.php (pagina web dinamica)
Contiene una parte in linguaggio php e una parte in linguaggio html contenente il css esterno utilizzato per
definire i Box Div: contenitore, intestazione, contenuti e footer utilizzati per definire la struttura della
pagina web.
La parte in linguaggio php tramite un’istruzione IF gestisce due situazioni diverse:
1. se $daindex = 1 significa che si proviene dalla pagina index si impostano solo i valori delle variabili
$azione=”inserisci.php”, $messaggio="Inserisci in Tabella", $annulla="reset"
2. se $daindex è diverso da 1 significa che si proviene dalla pagina inserisci.php si impostano i valori
delle variabili: $daindex="0"; $annulla="hidden"; $messaggio="Inserimento effettuato con
successo, continua...."; $azione="index.php"; poi ci si connette al database, si acquisiscono le
variabili col metodo POST e si esegue la query per inserire la nuova riga nella tabella con i dati
acquisiti dalla form.
La parte di HTML contiene la FORM per l’inserimento dei dati. Quando si apre la form ci si posiziona sul
primo campo (utilizzando la proprietà autofocus)..
Gestioene tabella con mysql e php - ultimo aggiornamento 01/06/2016
Pag. 2
modifica.php (pagina web dinamica)
Contiene una parte in linguaggio php e una parte in linguaggio html contenente il css esterno utilizzato per
definire i Box Div: contenitore, intestazione, contenuti e footer utilizzati per definire la struttura della
pagina web.
La parte in linguaggio php tramite un’istruzione IF gestisce due situazioni diverse:
1. se $daindex = 1 significa che si proviene dalla pagina index e si impostano solo i valori delle
variabili $azione=”modifica.php”, $messaggio="AGGIORNA", $annulla="button". Poi si
acquisiscono le variabli di input con il metodo POST, ci si connette al Database, si compila nella
variabile $SQL il comando SQL per leggere la riga della tabella da visualizzare (query di selezione)
salvando nella variabile $Risultato il risultato del comando, con un ciclo WHILE si impaginano i
risultati estratti dal Database .
Query di selezione per estrarre dati da
tabella:
SELECT nome_tabella.campo1,
nome_tabella.campo2,
…………………….
nome_tabella.nome_campo_n
FROM nome_database.nome_tabella
WHERE codice = $nome_combo”
2. se $daindex è diverso da 1 significa che si proviene dalla pagina modifica.php si impostano i valori
delle variabili: $azione=”index.php” , $messaggio=" Aggiornamento effettuato con successo, torna
a elenco..."; $annulla="hidden”. Poi si acquisiscono le variabili di input, ci si connette al database,
si compila nella variabile $SQL il comando SQL per aggiornare i dati nella tabella (query di
aggiornamento) e infine si esegue il comando SQL utilizzando la funzione mysql_query.
UPDATE nome_database.nome_tabella
SET
campo1 = variabile1,
……………………..
Campo_ n = variabile_ n
WHERE nome_tabela.codice = $nascosto ;
La parte di HTML contiene la FORM per la visualizzare i dati tetti dal Database e consentire di modificarli.
Gestioene tabella con mysql e php - ultimo aggiornamento 01/06/2016
Pag. 3
cancella.php (pagina web dinamica)
Contiene una parte in linguaggio php e una parte in linguaggio html contenente il css esterno utilizzato per
definire i Box Div: contenitore, intestazione, contenuti e footer utilizzati per definire la struttura della
pagina web.
La parte in linguaggio php tramite un’istruzione IF gestisce due situazioni diverse:
una volta acquisite le variabili di input:
1. se $daindex = 1 significa che si proviene dalla pagina index e si impostano solo i valori delle
variabili $azione=”cancella.php”, $messaggio=" Conferma cancellazione ", $tipo="button",
$nascosto = $nome_combo.
2. se $daindex è diverso da 1 significa che si proviene dalla pagina cancella.php si impostano i valori
delle variabili: $daindex="0", $azione=”index.php” , $messaggio=" Cancellazione effettuata con
successo, continua..."; $tipo="hidden”. Poi ci si connette al database, si compila nella variabile
$SQL il comando SQL per cancellare i dati nella tabella (query di cancellazione) e infine si esegue il
comando SQL utilizzando la funzione mysql_query.
DELETE FROM nome_database.nome_tabella
WHERE nome_tabella. codice = $nascosto;
La parte di HTML contiene la FORM per confermare l’operazione di cancellazione e per tornare alla pagina
index.php..
Principali Funzioni PHP utilizzate nel progetto:
mysql_connect("nome server", "nome database", "")
Questa funzione consente di connettersi ad un Database. I dati necessari alla connessione sono:
 indirizzo del server: bisogna specificare su quale computer è in esecuzione il server
MySQL. Nella maggior parte dei casi MySQL gira sulla stessa macchina in cui è in
funzione il server web (e quindi il PHP) pertanto l'indirizzo da specificare è "localhost".
Se invece il server si trova su un diverso computer, raggiungibile attraverso una
connessione TCP/IP, allora bisogna specificare il nome di dominio (es. sql.mioserver.it) o
l'indirizzo IP (es. 162.54.23.12) della macchina che lo ospita.
 nome utente e password: si tratta delle credenziali che permettono al server MySQL di
identificare l'utente che effettua la richiesta di connessione. Se abbiamo appena
Gestioene tabella con mysql e php - ultimo aggiornamento 01/06/2016
Pag. 4
installato MySQL allora possiamo usare il nome utente "root" e per password quella
specificata durante l'installazione.
La funzione mysql_connect() restituisce come risultato un numero che costituisce l'identificativo di
connessione MySQL in caso di successo oppure FALSE in caso contrario. E' quindi possibile verificare l'esito
della connessione semplicemente controllando il risultato restituito da mysql_connect().
Se qualcosa va storto possiamo inoltre ottenere maggiori informazioni sull'accaduto utilizzando un'altra
funzione,mysql_error(), che ci mostrerà un messaggio esplicativo sul problema verificatosi.
Anche se tutte le connessioni ai server MySQL vengono automaticamente chiuse alla fine dell'esecuzione
dello script, è buona norma chiudere la connessione esplicitamente, appena lo script ha terminato le
operazioni con il database. Per farlo basta richiamare la funzione mysql_close() a cui passiamo come
parametro l'identificativo di connessione ottenuto da mysql_connect().
mysql_error()
Questa funzione restituisce il testo dell'errore dall'ultima funzione MySQL, oppure '' (stringa vuota) se si è
verificato nessun errore.
Esempio:
$SessioneDb = mysql_connect("localhost", "prova", "")
or die("Connessione non riuscita: " . mysql_error());
ci si connette al database “prova” e in caso di errore si visualizza il messaggio: “ Connessione non Riuscita”
con il relativo codice di errore.
mysql_close(identificativo_connessione)
Questa funzione chiude la connessione al server MySQL associata all'identificativo di connessione
specificato (variabile
$SessioneDb.
Se identificativo_connessione non è specificato, viene usata
l'ultima connessione aperta.
mysql_query($SQL, $SessioneDb)
Questa funzione invia una query al database attualmente attivo sul server associato all'identificativo di
connessione (variabile $sessioneDb) specificato. La stringa della query (variabile $SQL) non dovrebbe
terminare con un punto e virgola.
Gestioene tabella con mysql e php - ultimo aggiornamento 01/06/2016
Pag. 5
La query mysql_query() restituisce TRUE in caso di successo e FALSE in caso di errore. Un valore restituito
diverso da FALSE indica che la query era lecita ed è stata eseguita dal server.
Esempio:
$Risultato = mysql_query($SQL, $SessioneDb) or die("Query non valida: " . mysql_error()."<br />\n".$SQL);
mysql_fetch_assoc($Risultato)
Restituisce un array associativo che corrisponde alla riga caricata o FALSE se non ci sono più righe.
La variabile $Risultato contiene la stringa risultato della query eseguita con la funzione mysql_query.
Esempio:
//--Ciclo per impaginazione html dei risultati estratti dal DB, cereando elenco tabellatre-while($RigaRis=mysql_fetch_assoc($Risultato)) {
$codice
= $RigaRis[codice];
$descrizione = $RigaRis[descrizione];
$importo
= $RigaRis[importo];
//--Emissione elemento in html, in forma di riga tabellare-$OUT1.="
<tr>
<td>".$codice."</td>
<td>".$descrizione."</td>
<td>".$importo."&nbsp;&euro;"."</td>
</tr>
";
}
Gestioene tabella con mysql e php - ultimo aggiornamento 01/06/2016
Pag. 6