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 |
|
|
|
|
|
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 |
|
|
|
|
|
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 |
|
|
|
|
|
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
|
|
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:
- lettura e visualizzazione di uno studente (primo, ultimo, precedente, successivo)
- modifica di uno studente
- inserimento di uno studente
- stampa di tutti gli studenti
- 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:
- memorizzare i dati degli studenti, nel file STUDENTI,
- memorizzare in un nuovo file l'elenco degli studenti promossi iscritti per l'anno successivo, ordinato alfabeticamente, secondo il campo "cognome studente",
- 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:
- lettura e visualizzazione di una fattura (primo, ultimo, precedente, successivo),
- modifica di una fattura,
- inserimento di una fattura,
- visualizzare: numero, importo totale delle fatture in archivio e fatturato medio,
- elenco clienti per cui sono state emesse delle fatture senza ripetizione,
- 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:
- lettura e visualizzazione di una partita (primo, ultimo, precedente, successivo)
- modifica di una partita
- inserimento di una partita
squadraA |
squadra B |
giornata |
girone |
risultato |
- 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:
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":
- Quante parole sono contenute nella tabella?
- Quante parole di ogni "tipo" sono contenute nella tabella?
- Visulizzare tutte le parole (in lingua inglese) che iniziano con la lettera "a"
- Data una "parola" (in lingua inglese), visualizzarla insieme alla sua traduzione
- Visulizzare tutte le parole in lingua inglese di un "tipo" scelto a piacere (ATTENZIONE: parametro non costante!)
- 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
su
|
|