Esercitazione PAM. (Php Apache MySQL)



Похожие документы
PHP e Structured Query Language

Esercizi ed appunti PHP

MySQL Database Management System

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

TOP DOWN. Preparati per il compito in classe Modulo 5

Gestione Orario Lezioni: Schema del Database

Non vedo l ora Realizzazione di un sistema per la gestione dell orario scolastico

Laboratorio Progettazione Web PHP e MySQL. Andrea Marchetti IIT-CNR 2013/2014

Introduzione a MySQL

PHP E MYSQL CREAZIONE DI UN NUOVO DATABASE DAL PHPMYADMIN

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2012/2013

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2011/2012

Visualizzazione ordini in MyShopDB

Form Editor. Dove NomeProfilo è personalizzabile.

MODULO 1 PARTE 3. Programmazione (scripting) server-side con PHP 3.b Interazione con un database (MySQL Server)

Simulazione seconda prova Esame di Stato Sito Web - Gestione di un centro agroalimentare all ingrosso (Parte seconda)

<?php include './include/page.php';

Appunti di MySql. Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov.

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

Indice Configurazione di PHP Test dell ambiente di sviluppo 28

GERARCHIE RICORSIVE - SQL SERVER 2008

RELAZIONE TECNICA GESTIONE CARTE DI CREDITO. a cura di EMANUELE CESARI

Eprogram ITIS V anno Unità 6 - PHP e MySQL

SISTEMA INFORMATIVO PER LA GESTIONE VIA WEB DEL NUOVO CIMITERO DEL COMUNE DI GIFFENGA

CONCETTO DI ANNIDAMENTO

Corso di Informatica Modulo T3 B2 - Database in rete

1) Il client(browser utilizzato) invia al server i dati inseriti dall utente. Server

IL DAT A B A S E DI ALGE B R A N D O

MySQL Database Management System

Esercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Informatica per le discipline umanistiche 2 lezione 10

Architettura a tre livelli (1)

User Tools: DataBase Manager

Sistemi Mobili e Wireless Android - Dati persistenti: SQLite

PHP 5. PHP ed i database. Database e tabelle. Struttura di un DB relazionale. Accesso a database

a.a. 2012/13 12 Novembre 2012 Preparazione al Test in itinere, Compito A 1. Modellare tramite uno schema entità- relazione la seguente base di dati:

Strumenti Software per Esercitazioni (ambiente Windows) Basi di Dati L LS Ing. Gestionale

Esercitazione sulle libpq - libreria C per PostgreSQL

DBMS (Data Base Management System)

RELAZIONE DI PROGETTO DELL ESAME STRUMENTI PER APPLICAZIONI WEB

PHP e MySQL. Scripting server-side per accesso a DB MySQL

INDICI. Prevediamo di effettuare spesso interrogazioni simili alle seguenti:

Preparazione. Introduzione a MySQL: costruzione di una base di dati e gestione degli accessi. Accesso all area condivisa. Avvio Server MySQL

JSP - Caso di studio 1 Una galleria di immagini

Costruzione di Sit Web con PHP e MySQL. Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query

PHP e MySQL. Guida scaricata da

Introduzione ai database relazionali

Anno 2013 Informatica ABACUS

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

PHP 5. Accesso a database

Lezione 8. Metadati, Viste e Trigger

Tener traccia del client

Esercitazione 1. Sistemi Informativi T. Versione elettronica: L01.2.DDLDMLbase.pdf

Personalizzazione Stampe

Uso delle basi di dati. Informazione e dato. Cos è un database. Tabelle. Esempi di database

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro)

Esercitazione 8. Basi di dati e web

Accesso a basi di dati con ASP. Algoritmo per visualizzare un DB

Sessione ordinaria 2005 Seconda prova scritta M070 - ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7

Applicazione client-server in PHP con database MySQL

SQL PER LA DEFINIZIONE DI BASI DI DATI

SQL -DDL. FONDISTA(Nome, Nazione, Età) GAREGGIA(NomeFondista, NomeGara, Piazzamento) GARA(Nome, Luogo, Nazione, Lunghezza)

Esame di Stato Istituto Tecnico Industriale Soluzione della Seconda Prova Indirizzo: INFORMATICA Tema: INFORMATICA Anno Scolastico:

Obiettivo dell esercitazione

ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE CORSO SPERIMENTALE Progetto ABACUS SIMULAZIONE PROVA SCRITTA DI INFORMATICA

Introduzione a phpmyadmin

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro) ESERCIZIO 3

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

bool mysql_select_db([string database_name [,resource link_identifier]]) Connessione ad un server MySQL vuole conettere

Dispensa di database Access

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

OSSIF WEB. Manuale query builder

Laboratorio di Sistemi Prototipo autenticazione utente Jsp [Java]

Laboratorio Progettazione Web PHP e FORMs HTML. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2013/2014

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

BASI DI DATI Cos è il PHP. Cos è il PHP. Esercitazione su PHP & MySQL

RELAZIONE E-COMMERCE

Laboratorio di Tecnologie Web Laurea in Scienze e Tecnologie Multimediali

Amministrare MySQL con PhpMyAdmin

ESAME DI MATURITA 2015 Seconda prova scritta indirizzo Informatica Abacus Informatica

Sicurezza Informatica: Tecniche di SQL INJECTION

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

Basi di Dati: Corso di laboratorio

Java Server Pages (JSP) JSP o Servlet? Java Server Pages (JSP) Java Server Pages Costituiscono un estensione della tecnologia delle servlet

Транскрипт:

Prerequisiti: Esercitazione PAM (Php Apache MySQL) Installazione del server Apache: avvenuta; Installazione del server Php: avvenuta; Sincronizzazione dei due server: avvenuta. Abstract: L esercitazione si svolge interamente costruendo programmi in php (e html) che svolgeranno tutte le funzioni relative alle attività su un db: 1. creazione e verifica della connessione a MySQL (creaconnessione.php); 2. creazione del db (creadb.php); 3. connessione al db e creazione di due tabelle concatenate (creatabqua.php e creatabdip.php); 4. inserimento di righe nelle due tabelle (inserqua.htm; registraqua.php; inserdip.php; registradip.php); 5. visualizzazione dei contenuti delle due tabelle con diverse tecniche (veditabqua1.php; veditabqua2.php; veditabdip1.php; veditabdip2.php); 6. modifica/eliminazione di una riga dalla tabella dipendenti (qualedip.php chiede quale dipendente modificare/eliminare; aggiornadip.php accetta le modifiche per un dipendente; updatedip.php registra le modifiche sulla tabella; eliminadip.php elimina un dipendente); 7. costruzione di un menu (menu.htm). 1. creaconnessione.php Nel listato seguente è necessario personalizzare i valori di $hostname, $username, $password in base ai parametri del proprio server Apache <title>creazione della connessione</title> <h1>connessione al server MySQL</h1> $db=mysql_connect($hostname, $username, $password) or die("connessione al server MySQL <h2>connessione al server eseguita!</h2> 2. creazione del db (creadb.php) Ogni gruppo utilizzi il nome del db assegnato. Nell esempio si pone $db = aacc <title>creazione della connessione</title> Pag. 1 di12

<h1>connessione al database</h1> <h2>connessione al server eseguita!</h2> $q = "create database if not exists $db"; // la stringa viene sviluppata a causa dell'uso delle virgolette mysql_query($q,$conn) or die("creazione del database $db!"); <h1>creazione del db eseguita!</h1> 3a. creatabqua.php <title>creazione della tabella Qualifiche</title> <h1>connessione al database</h1> <h2>connessione al server eseguita!</h2> <h2>connessione al database eseguita!</h2> $q = 'CREATE TABLE Qualifiche ( CodQual INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, Descrizione VARCHAR(30) NOT NULL, PRIMARY KEY (CodQual) ) ENGINE = InnoDB'; // questo fa si che si accettino le foreign keys mysql_query($q, $conn) or die("la creazione della tabella Qualifiche e' <h2>creazione della tabella Qualifiche eseguita!</h2> 3b. creatabdip.php La possibilità di dichiarare foreign keys è effettiva dalla versione php5 con ENGINE = InnoDB <title>creazione della tabella Dipendenti</title> Pag. 2 di12

<h1>connessione al database</h1> $conn=mysql_connect($hostname,$username,$password) or die("connessione al server MySQL <h2>connessione al server eseguita!</h2> <h2>connessione al database eseguita!</h2> $q = 'create table Dipendenti ( CodDip integer unsigned not null auto_increment, Nominativo varchar(30) not null, IDQual integer unsigned not null, primary key (CodDip), foreign key (IDQual) references qualifiche(codqual) ) engine = innodb'; // questo fa si che si accettino le foreign keys mysql_query($q, $conn) or die("la creazione della tabella Qualifiche e' <h2>creazione della tabella Dipendenti eseguita!</h2> 4a. inserqua.htm Si crea in HTML il form per l inserimento dei dati per la tabella qualifiche. In questo caso, a titolo di esempio, è presente una funzione JavaScript che controlla che il campo Descrizione sia stato riempito. Per i form successivi, per non appesantire il codice, non si effettueranno altri controlli. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <title>acquisizione dati per la tabella Qualifiche</title> <script language="javascript"> function controlla() { if(document.modulo.descrizione.value.length<1 ) { alert("inserire la descrizione!"); return (false); return (true); </script> <h2>acquisizione dati per la tabella Qualifiche</h2> <form action="registraqua.php" method="post" name="modulo" onsubmit="return controlla();"> <table> <tr> <td align="right">descrizione della qualifica</td> <td><input name="descrizione" type="text" maxlength="30"></td> </tr> <tr> <td align="right"><input name="annulla" type="reset" value="annulla"></td> <td><input name="invia" type="submit" value= "Invia"> <input name="menu" type="button" value="menu" onclick="location.href='menu.htm';"></td> </tr> </table> </form> Pag. 3 di12

4b. registraqua.php <title>registrazione della qualifica</title> <h1>registrazione della qualifica</h1> // Acquisizione dati dal form $Descrizione = $_POST["Descrizione"]; $Descrizione=htmlentities($Descrizione,ENT_QUOTES); //Convert all applicable characters to HTML entities $q = "INSERT INTO Qualifiche VALUES ( NULL, '$Descrizione' )"; mysql_query($q) or die("inserimento non riuscito". mysql_error($conn)); echo "E' stata inserita la descrizione <strong>$descrizione</strong> con il codice ". mysql_insert_id($conn); // cioè l ultimo valore del campo in autoincremento // ----- Chiusura della connessione 4c. inserdip.php Si crea il form per l inserimento dei dati per la tabella dipendenti. L elenco delle qualifiche utilizzabili è estratto tramite una SELECT dalla tabella qualifiche e inserito nel form HTML come select option <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <title>acquisizione dati per la tabella Dipendenti</title> <h2>acquisizione dati per la tabella Dipendenti</h2> $q = "SELECT * FROM Qualifiche;"; $rs = mysql_query($q) or die("errore: ". mysql_errno($conn).": ". mysql_error($conn)); <form action="registradip.php" method="post"> Nominativo: <input name="nominativo" type="text" maxlength="30"> Qualifica: Pag. 4 di12

echo '<select name="qualifica">'; while($riga = mysql_fetch_array($rs)) { $CodQual = $riga["codqual"]; $Descrizione = $riga["descrizione"]; echo '<option value="'. $CodQual. '">'. $Descrizione. '</option>'; echo '</select>'; <input name="annulla" type="reset" value="annulla"> <input name="invia" type="submit" value= "Invia"> </form> // ----- Chiusura della connessione 4d. registradip.php <title>registrazione del dipendente</title> <h1>registrazione del dipendente</h1> // Acquisizione dati dal form $Nominativo = $_POST["Nominativo"]; $Descrizione=htmlentities($Descrizione,ENT_QUOTES); //Convert all applicable characters to HTML entities $CodQual = $_POST["Qualifica"]; $q = "INSERT INTO Dipendenti VALUES ( NULL, '$Nominativo', '$CodQual' )"; mysql_query($q) or die("inserimento non riuscito. Errore: ". mysql_error($conn)); echo "E' stata inserito il dipendente <strong>$nominativo</strong> con il codice ". mysql_insert_id($conn); // ----- Chiusura della connessione <input name="altroinserimento" type="button" onclick="location.href='inserdip.php';" value="altro inserimento" /> 5a. veditabqua1.php Versione con chiamata esplicita dei campi da visualizzare <title>visualizzazione tabella Qualifiche</title> <h1>tabella delle qualifiche - versione 1</h1> Pag. 5 di12

<h2>uso delle funzioni: </h2> <ul><li>mysql_num_rows($rs)</li> <li>mysql_fetch_array</li></ul> $conn = mysql_connect($hostname,$username,$password) or die("connessione al server MySQL $q = "SELECT * FROM Qualifiche;"; $rs = mysql_query($q) or die("errore: ". mysql_errno($conn).": ". mysql_error($conn)); <!-- Impostazione della tabella --> <table border="1" cellpadding="4"> <tr><th>codice</th><th>descrizione</th></tr> while($riga = mysql_fetch_array($rs)) { $CodQua = $riga["codqual"]; $Descrizione = $riga["descrizione"]; echo "<tr>"; echo "<td>". $CodQua. "</td>"; // si può costruire una stringa concatenata echo "<td>$descrizione</td>"; // oppure si può inserire la stringa che viene sviluppata dentro "..." echo "</tr>"; </table> // ---- Chiusura della connessione 5b. veditabqua2.php Versione con visualizzazione di tutti i campi con la funzione mysql_result($rs,$i,$j), dove $rs è il recordset, $i è la riga, $j è la colonna <title>visualizzazione tabella Qualifiche</title> <h1>tabella delle qualifiche - versione 2</h1> <h2>uso delle funzioni: </h2> <li>mysql_num_rows</li> <li>mysql_field_name</li> <li>mysql_result</li> <li>mysql_num_fields</li></ul> $conn = mysql_connect($hostname, $username, $password) or die("connessione al server MySQL $q = "SELECT * FROM Qualifiche;"; //$rs = mysql_query($q) or die("errore: ". mysql_errno($conn).": ". mysql_error($conn)); $rs = mysql_query($q) or die("errore: "); Pag. 6 di12

// Impostazione della tabella --> echo '<table border="1" cellpadding="4"><tr>'; // intestazione for($j=0;$j<mysql_num_fields($rs);$j++) { echo "<th>". mysql_field_name($rs,$j). "</th>"; echo '</tr>'; // visualizzazione delle righe $numrighe = mysql_num_rows($rs); for($i=0;$i<$numrighe;$i++) { echo "<tr>"; for($j=0;$j<mysql_num_fields($rs);$j++) { echo "<td>"; echo mysql_result($rs,$i,$j); echo "</td>"; echo "</tr>"; echo "</table>"; // ---- Chiusura della connessione 5c. veditabdip1.php Si visualizza la tabella dipendenti in cui c è in chiaro la descrizione della qualifica tramite una SELECT con INNER JOIN. <title>visualizzazione tabella Dipendenti</title> <h1>tabella dei dipendenti - versione 1</h1> <h2>si effettua una query con Join</h2> $conn = mysql_connect($hostname, $username, $password) or die("connessione al server MySQL - la query è su più righe, senza bisogno di concatenare i pezzi! $q = "SELECT d.coddip, d.nominativo, q.descrizione FROM dipendenti d INNER JOIN qualifiche q ON d.idqual = q.codqual"; $rs = mysql_query($q) or die("errore: ". mysql_errno($conn).": ". mysql_error($conn)); // Impostazione della tabella --> echo '<table border="1" cellpadding="4"><tr>'; // intestazione for($j=0;$j<mysql_num_fields($rs);$j++) { echo "<th>". mysql_field_name($rs,$j). "</th>"; echo '</tr>'; // visualizzazione delle righe $numrighe = mysql_num_rows($rs); for($i=0;$i<$numrighe;$i++) { echo "<tr>"; for($j=0;$j<mysql_num_fields($rs);$j++) { echo "<td>"; echo mysql_result($rs,$i,$j); echo "</td>"; Pag. 7 di12

echo "</tr>"; echo "</table>"; // ---- Chiusura della connessione 5d. veditabdip2.php Si visualizza la tabella dipendenti in cui c è in chiaro la descrizione della qualifica tramite l uso di una funzione che, acquisito il codice della qualifica di ciascun dipendente, restituisce la sua descrizione. <title>visualizzazione tabella Dipendenti</title> //la funzione getdescrizione() accetta come parametro il codice della qualifica e restituisce la sua descrizione function getdescrizione($codqualifica) { $q = "SELECT Descrizione FROM Qualifiche WHERE CodQual = '". $CodQualifica. "'"; $recs = mysql_query($q); if(!$recs) exit("errore nella query di descrizione"); if(mysql_num_rows($recs)==0) exit("tabella descrizioni vuota"); $rig = mysql_fetch_array($recs); return $rig["descrizione"]; <h1>tabella dei dipendenti - versione 2</h1> <h2>si utilizza una funzione per acquisire le qualifiche</h2> $conn = mysql_connect($hostname,$username,$password) or die("connessione al server MySQL $q = "SELECT * FROM Dipendenti;"; $rs = mysql_query($q) or die("errore: ". mysql_errno($conn).": ". mysql_error($conn)); <!-- Impostazione della tabella --> <table border="1" cellpadding="4"> <tr><th>codice</th><th>nominativo</th><th>descrizione</th></tr> <!-- scrittura delle righe --> while($riga = mysql_fetch_array($rs)) { $CodDip = $riga["coddip"]; $Nominativo = $riga["nominativo"]; $IDQual = $riga["idqual"]; $Qualifica = getdescrizione($idqual); echo "<tr>"; echo "<td>$coddip</td>"; echo "<td>$nominativo</td>"; echo "<td>$qualifica</td>"; echo "</tr>"; </table> // ---- Chiusura della connessione Pag. 8 di12

6a. qualedip.php La modalità qui usata consiste nel visualizzare i dati principali delle righe da modificare/cancellare. Naturalmente si può fare meglio. A titolo di esempio si usa una tecnica CSS per migliorare l estetica. Inoltre la chiamata ai programmi di modifica/cancellazione avviene tramite ancore, con la comunicazione del codice del dipendente. <title>modifica/eliminazione di un Dipendente</title> <style type="text/css"> th { background-color: #999;.odd_row { background-color: #EEE;.even_row { background-color: #FFF; </style> <h1>modifica/eliminazione di un dipendente</h1> $conn = mysql_connect($hostname, $username, $password) or die("connessione al server MySQL $q = "SELECT * FROM dipendenti"; $rs = mysql_query($q) or die("errore: ". mysql_errno($conn).": ". mysql_error($conn)); <table> <tr><th style="width:15%;">codice</th><th style="width:50%;">nominativo</th><th>operazione</th></tr> // visualizzazione delle righe $odd = true; while($riga = mysql_fetch_assoc($rs)) { echo ($odd == true)? '<tr class="odd_row">' : '<tr class="even_row">'; $odd =!$odd; echo '<td>'; echo $riga["coddip"]; echo '</td><td>'; echo $riga["nominativo"]; echo '</td><td>'; echo '<a href="aggiornadip.php?codicedip='. $riga["coddip"]. '">[Modifica]</a>'; echo '<a href="eliminadip.php?codicedip='. $riga["coddip"]. '">[Elimina]</a>'; echo '</td></tr>'; </table> // ---- Chiusura della connessione 6b. aggiornadip.php Si presenta un form con i vecchi dati della riga da modificare; le modifiche sulla qualifica sono controllate tramite una <select > <option > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> Pag. 9 di12

<title>modifica dati per la tabella Qualifiche</title> <h2>modifica dati per un dipendente</h2> fallito!"); // ---- acquisizione dati del dipendente $CodDip = $_GET["codiceDip"]; $q = 'SELECT * FROM dipendenti WHERE CodDip = "'. $CodDip. '";'; $tabdip = mysql_query($q) or die("errore: ". mysql_errno($conn).": ". mysql_error($conn)); $rigadip = mysql_fetch_array($tabdip); $nominativo = $rigadip["nominativo"]; $IDQual = $rigadip["idqual"]; // ---- acquisizione dati sulla qualifica del docente da cancellare $q = 'SELECT * FROM Qualifiche WHERE CodQual = "'. $IDQual. '";'; $tabqua = mysql_query($q) or die("errore: ". mysql_errno($conn).": ". mysql_error($conn)); $rigaqua = mysql_fetch_array($tabqua); $DescQua = $rigaqua["descrizione"]; //mysql_data_seek($tabqua,0); Non serve; riposiziona il puntatore all inizio della tabella // ---- acquisizione dati su tutte le qualifiche $q = 'SELECT * FROM Qualifiche'; $tabqua = mysql_query($q) or die("errore: ". mysql_errno($conn).": ". mysql_error($conn)); echo '<form action="updatedip.php" method="post">'; echo '<table>'; echo '<tr><td><font face="arial, Helvetica, sans-serif" size="-1">codice Dipendente</font></td><td>'. $CodDip. '</td><td><strong>modifica</strong></td</tr>'; echo '<tr><td><font face="arial, Helvetica, sans-serif" size="-1">nominativo</font></td><td>'. $nominativo. '</td><td><input name="nominativo" type="text" maxlength="30" value="'. $nominativo. '"></td></tr>'; echo '<tr><td><font face="arial, Helvetica, sans-serif" size="- 1">Qualifica</font></td><td>'. $DescQua.'</td>'; echo '<td><select name="qualifica" value="'. $IDQual. '">'; while($riga = mysql_fetch_array($tabqua)) { $CodQual = $riga["codqual"]; $Descrizione = $riga["descrizione"]; echo '<option value="'. $CodQual. '">'. $Descrizione. '</option>'; echo '</select></td></tr></table>'; <input name="codicedip" type="hidden" value=" echo $CodDip; "> <!-- per trasmettere il codice dipendente alla pagina chiamata --> <input name="annulla" type="reset" value="annulla"> <input name="invia" type="submit" value= "Invia"> </form> // ----- Chiusura della connessione 6c. updatedip.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <title>registrazione delle modifiche al dipendente</title> Pag. 10 di12

<h2>registrazione delle modifiche al dipendente</h2> fallito!"); // ---- acquisizione dei parametri dal form $CodDip = $_POST["codiceDip"]; // acquisito tramite <input name="codicedip" type="hidden" > $Nominativo = $_POST["Nominativo"]; $IDQual = $_POST["Qualifica"]; $q = "UPDATE dipendenti "; $q.= "SET Nominativo = '$Nominativo',"; $q.= "IDQual = '$IDQual' "; $q.= "WHERE CodDip = '$CodDip';"; $rs = mysql_query($q) or die("errore: ". mysql_errno($conn).": ". mysql_error($conn)); Il dipendente di codice echo $CodDip; ha modificato il suo nominativo in echo $Nominativo; e il codice della sua qualifica in echo $IDQual;. <input name="menu" type="button" onclick="location.href='qualedip.php';" value="altra modifica" /> // ----- Chiusura della connessione 6d. eliminadip.php <title>eliminazione di un dipendente</title> $conn = mysql_connect($hostname, $username, $password) or die("connessione al server MySQL // acquisizione codice dipendente da eliminare $CodDip = $_GET["codiceDip"]; echo "<h1>eliminazione del dipendente di codice $CodDip</h1>"; $q = "DELETE FROM dipendenti WHERE CodDip = $CodDip"; mysql_query($q) or die("errore: ". mysql_errno($conn).": ". mysql_error($conn)); // ---- Chiusura della connessione Pag. 11 di12

7. Menu.htm <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <title>menu esercitazione PAM</title> <h1>menu esercitazione PAM</h1> <table> <tr><td><input name="creaqua" type="button" value="crea qualifica" onclick="location.href='inserqua.htm';"></td></tr> <tr><td><input name="creadip" type="button" value="crea dipendente" onclick="location.href='inserdip.php';"></td></tr> <tr><td><input name="vediqua" type="button" value="visualizza tabella delle qualifiche v.1" onclick="location.href='veditabqua1.php';"></td></tr> <tr><td><input name="vediqua" type="button" value="visualizza tabella delle qualifiche v.2" onclick="location.href='veditabqua2.php';"></td></tr> <tr><td><input name="vedidip" type="button" value="visualizza tabella dei dipendenti v.1" onclick="location.href='veditabdip1.php';"></td></tr> <tr><td><input name="vedidip" type="button" value="visualizza tabella dei dipendenti v.2" onclick="location.href='veditabdip2.php';"></td></tr> <tr><td><input name="vedidip" type="button" value="seleziona un dipendente per la modifica/eliminazione" onclick="location.href='qualedip.php';"></td></tr> </table> Pag. 12 di12