Modulo Problemi di gestione PHP-mysql di una tabella di un database
Lezione
n.2
Argomento

Algoritmi: gestione PHP-@mysql di una tabella di un database
Linguaggio PHP: echo, $_POST, include(...), for($i=1;$i<=$num;$i++): ... endfor; if (...): ... else: ... endif, @, @mysql_connect, @mysql_create_db, @mysql_select_db, @mysql_query, @mysql_num_rows, @mysql_fetch_row, @mysql_close(...), die(...)
Linguaggio @mysql: CREATE TABLE, SELECT, INSERT, UPDATE, DELETE

Esempio 01, Esempio 02 (v1) , Esempio 02 (v2)
Promemoria
Trucco
Esercizi da svolgere


Esempio 01
Dati i conoscenti presenti in una rubrica telefonica, di cui sono noti i seguenti dati:

id nome cognome prefisso telefono data

con:

  • id corrispondente alla chiave primaria,

realizzare i seguenti programmi

  • creazione di un database
  • creazione della tabella rubrica
  • inserimento di un nuovo record
  • modifica di un record
  • cancellazione di un record
  Svolgimento esempio n. 01
   
   
  Codifica
  Clicca qui
torna su

Esempio 02
Dati gli utenti di un servizio internet, di cui sono noti i seguenti dati:

id cognome nome telefono fisso cellulare email nick password

con:

  • id corrispondente alla chiave primaria,

realizzare i seguenti programmi

  • inserimento di un nuovo record
  • modifica di un record
  • cancellazione di un record
  Svolgimento esempio n.02 (v1)
  Codifica
  Clicca qui
torna su

Esempio 03
Dati gli utenti di un servizio internet, di cui sono noti i seguenti dati:

id cognome nome telefono fisso cellulare email nick password

con:

  • id corrispondente alla chiave primaria,

realizzare i seguenti programmi

  • inserimento di un nuovo record
  • modifica di un record
  • cancellazione di un record
  Svolgimento esempio n.03 (v2)
  Codifica
  Clicca qui
torna su

Promemoria

PHP per la gestione di un db MySql

$connessione =@mysql_connect(nomehost, nomeutente, nomepassword) or die... Serve per stabilire la connessione con il database
$db =@mysql_create_db(nomeutente, nomeconnessione) Serve per creare il database
$db =@mysql_select_db(nomedb, nomeconnessione) Apre il database
$risultato=@mysql_query(nomequery,nomeconnessione) Restituisce il recordset che potrà successivamente essere letto (SELECT...) per prelevare i singoli record.nome query può contenere una qualunque istruzione sql (create table...,insert into...,select...,upadate...,delete from...).
$numero=@mysql_num_rows(nomerecordset) Estrae dal recordset il numero di righe che lo compongono
$riga=@mysql_fetch_row(nomerecordset) Legge una riga del recordset(tabella virtuale e/o query)
$nomecampo= $riga[nomecampo] Consente di assegnare alla variabile $nomecampo il contenuto del campo scelto presente nella riga che sta leggendo
@mysql_insert_id(nomeconnessione) Quando la tabella è dotata di un campo contatore/autoincrementale, la funzione, eseguita immediatamente dopo una query di inserimento nel database fornisce il valore dell'unico campo contatore della tabella.
@mysql_close(nomeconnessione) Chiude la connessione con il server
Trucco
Abracadabra.....
Esercizi da svolgere
01. Problemi di gestione PHP-@mysql di una tabella di un database

Esercizio 17.1 (tratto da Esercizio 1.21)

Alla fine dell’anno scolastico, il Preside desidera archiviare in una file gli esiti di fine anno degli studenti della sua scuola. I dati da archiviare, per ogni studente sono:

  • cognome studente
  • nome studente
  • classe
  • esito di fine anno:
    Per indicare l'esito si può immettere, ad esempio, “P” per indicare che lo studente è stato promosso e “B” per indicare che lo studente è stato bocciato.

Per soddisfare questa esigenza scrivere i seguenti programmi:

  1. lettura e visualizzazione di uno studente (primo, ultimo, precedente, successivo)
  2. modifica di uno studente
  3. inserimento di uno studente
  4. stampa di tutti gli studenti
  5. visualizzazione di tutti gli studenti promossi, il numero di studenti promossi e non promossi e le rispettive percentuali sul numero totale di studenti.
Esempio 50
Dato il file sequenziale STUDENTI, con i risultati di fine anno degli studenti di una scuola:



cognome studente

nome studente

classe

sezione

esito


tenendo conto che il record può contenere:
  • nel campo "esito":
    • promosso, se l'alunno è stato "promosso",
    • "non promosso, se l'alunno è stato "non promosso"
  • un numero compreso fra 1 e 5 nel campo classe

si desidera:

  1. memorizzare i dati degli studenti, nel file STUDENTI,
  2. memorizzare in un nuovo file l'elenco degli studenti promossi iscritti per l'anno successivo, ordinato alfabeticamente, secondo il campo "cognome studente",
  3. visualizzare, secondo il prospetto che segue, il numero di studenti promossi e non promossi e le percentuali sul numero totale di studenti:

SITUAZIONE RIEPILOGATIVA ESITI DELL'ANNO SCOLASTICO

TOTALE STUDENTI xxxx

PROMOSSI numero xxxx percentuale xxx %

NON PROMOSSI numero xxxx percentuale xxx %

Esercizio 17.2 (tratto da Esercizio 8.1)
Dato un elenco di fatture formato da:

  • cognome
  • nome
  • numero fattura
  • data fattura
  • importo fattura

scrivere i seguenti programmi:

  1. lettura e visualizzazione di una fattura (primo, ultimo, precedente, successivo),
  2. modifica di una fattura,
  3. inserimento di una fattura,
  4. visualizzare: numero, importo totale delle fatture in archivio e fatturato medio,
  5. elenco clienti per cui sono state emesse delle fatture senza ripetizione,
  6. cognome e nome del cliente con fatture di importo massimo;

ed inoltre, visualizzare, per ogni fattura:

  • cognome
  • nome
  • numero fattura
  • data fattura
  • importo fattura scontato
applicando lo sconto del 19% se l'importo della fattura è maggiore di € 5.000 e lo sconto del 10% nel caso contrario,

Esercizio 17.3 (tratto da Esercizio 8.2)
Date le squadre di calcio che giocano una domenica, scrivere i programmi:

  1. lettura e visualizzazione di una partita (primo, ultimo, precedente, successivo)
  2. modifica di una partita
  3. inserimento di una partita
squadraA squadra B giornata girone risultato
  1. visualizzazione del punteggio ottenuto da una squadra scelta a piacere dall'utente.

Esercizio 17.20 (tratto da Esercizio 12.20 - Comporre poesie HAIKU)
Si desidera comporre poesie HAIKU in lingua inglese.
A tal fine si realizzi la gestione della tabella vocabulary con il seguente tracciato record:

id Tipo Parola in lingua inglese Parola in lingua italiana

dove tipo può assumere uno dei seguenti valori:

  • ADJ
  • NOM
  • VER
  • ART
  • PRE

Dopo aver realizzato la gestione del tabella vocabulary si predisponga il programma per la composizione delle poesie HAIKU tenendo conto che ogni poesia deve avere tre righe ciasuna delle qualì può essere organizzata come segue:

1° METODO

Art +adj + adj + no

Prep + art + adj + no

Art + no + verb

2° METODO

Art + adj + no + verb

Art + adj + adj + no

Prep + art + adj + no

3° METODO

Art + adj + no

Art + no + verb + prep + art + no

Adj + adj + no

4° METODO

No + prep + art + no

Art + adj + no + prep + art+ no

Adj + no

Lavorando con MS ACCESS, si realizzino

  • le seguenti interrogazioni, utilizzando "crea una query in visualizzazione struttura":
    1. Quante parole sono contenute nella tabella?
    2. Quante parole di ogni "tipo" sono contenute nella tabella?
    3. Visulizzare tutte le parole (in lingua inglese) che iniziano con la lettera "a"
    4. Data una "parola" (in lingua inglese), visualizzarla insieme alla sua traduzione
    5. Visulizzare tutte le parole in lingua inglese di un "tipo" scelto a piacere (ATTENZIONE: parametro non costante!)
    6. Disporre la tabella in ordine cresente di "tipo" e "parola" (in lingua inglese)
  • le stesse interrogazioni, utilizzando solo SQL.
  • realizzare una maschera per inserire i dati nella tabella vocabulary, utilizzando "crea una maschera mediante creazione guidata"
  • realizzare un report relativo a ciascuna delle query (3) (5) (6), utilizzando "crea un reporta maschera mediante creazione guidata"

Esempio 17.21 (tratto da Esercizio 10.34-11.34)
Dati i conoscenti presenti in una rubrica telefonica, di cui sono noti i seguenti dati:

id nome cognome prefisso data

con:

  • id corrispondente alla chiave primaria,

realizzare i seguenti programmi

  • creazione di un database
  • creazione della tabella rubrica
  • inserimento di un nuovo record
  • modifica di un record
  • cancellazione di un record
 
Torna all'inizio pagina
torna su