Esercitazione PAM. (Php Apache MySQL)



Documenti analoghi
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.

RELAZIONE E-COMMERCE ommerce/index.html

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

HTML. Usare il seguente HTML per i primi tre esercizi (che, si noti, al momento restituisce un errore JavaScript):

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:

Dott.ssa Maria Vittoria Avolio. Dott.ssa Adriana Pietramala

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

Versione Elenco modifiche

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

VIDES. Mariagrazia Rossi

Guida all upgrade alla versione 1.3.1

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

Corso di Web Programming

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

RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE CISALFA

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:

Web Programming. Lezione 4: Cookie e Sessioni. Giulio Rossetti 14/04/2011. Guru@Work

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

Progetto CSP: Innovation & Creativity for School. Istituto Tecnico Industriale Statale Giulio Cesare Faccio Vercelli Gruppo 5 ELETTRONICI

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

La pagina Web modulo.html utilizza le specifiche di stile descritte nel foglio feedback.css.

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

Transcript:

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