PHP/MySQL. Esercizio, database ‘Gestione anagrafica clienti’

Si vuole creare una semplice applicazione web (una versione molto semplificata di un’anagrafica clienti) che permetta di memorizzare alcuni dati dei clienti in un database di nome anagrafica. Di ciascun cliente si vuole memorizzare i seguenti dati: cognome, nome, indirizzo, città, provincia. Il database al quale l’applicazione dovrà connettersi è descritto dal seguente modello.


 Schema E/R del database ‘anagrafica

dbGestioneClienti01


Schema logico del database ‘anagrafica

clienti (idCliente {PK}, cognome, nome, indirizzo, idCitta {FK})

Nome campo Tipo Obbligatorio Chiave Default Extra
idCliente int si PK auto_increment
cognome varchar(30) si
nome varchar(30) si
indirizzo varchar(40) no
idCitta int si FK

citta (idCitta {PK}, nome, idProvincia {FK})

Nome campo Tipo Obbligatorio Chiave Default Extra
idCitta int si PK auto_increment
nome varchar(30) si
idProvincia int si FK

province (idProvincia {PK}, sigla)

Nome campo Tipo Obbligatorio Chiave Default Extra
idProvincia int si PK auto_increment
sigla char(2) si


L’applicazione dovrà realizzare le seguenti funzionalità:

  1. Inserimento di un nuovo cliente nella tabella clienti.
  2. Visualizzazione della tabella clienti.
  3. Visualizzazione dei clienti per provincia.
  4. Visualizzazione dei clienti per città.

In particolare, quando si inserisce un nuovo cliente (punto 1) le scelte della provincia e della città devono avvenire tramite delle caselle di scelta a discesa. Se la provincia e/o la città non sono presenti nel database, deve essere previsto che si possa procedere prima con l’inserimento della provincia e/o della città. Pertanto, bisognerà prevedere la realizzazione delle seguenti sotto-funzionalità attivabili nella pagina della funzionalità del punto 1:

  1. Aggiungi provincia.
  2. Aggiungi città.