MySQL. Esercizio 1. Soluzione
|
|
|
- Evaristo Santi
- 7 anni fa
- Просмотров:
Транскрипт
1 MySQL Esercizio 1 Implementare un servizio di API, che permette di accedere alle informazioni contenute nel dataset In particolare, l API deve permettere la consultazione delle seguenti informazioni: per ogni comune le coordinate geografiche per ogni provincia la popolazione prima del sisma Soluzione Come prima cosa, dobbiamo correggere alcuni problemi di codifica del dataset. Tramite Phpmyadmin modifichiamo i seguenti record: sostituire l apostrofo di Sant Angelo sul Nera con un normale apostrofo ripetere l operazione anche per Sant anatolia di Narco. Per fare questo, accedere a Phpmyadmin, selezionare il database di interesse e la tabella contenente la lista dei comuni. Nel menu in alto selezionare il tasto mostra e scorrere l elenco dei record fino a trovare il primo record di interesse. Premere sul tasto modifica in corrispondenza del record. Nel form che si apre correggere il campo Comune. Ripetere l operazione anche per l altro record. Strutturiamo l esercizio come un progetto, che poi utilizzeremo anche negli esercizi successivi. Nella htdocs di XAMPP creiamo una cartella progetto, dentro cui creiamo altre due cartelle: api, che conterrà tutte le api php che andremo a sviluppare libraries, che conterrà tutte le librerie php già esistenti All interno della cartella libraries posizioniamo la libreria dblibrary.php, che permette la gestione dell interazione tra PHP e MySQL. Creiamo ora un file config.php che posizioniamo nella cartella api. Questo file contiene i parametri di configurazione della connessione al database e aprirà la connessione al database. Il file config.php dovrà essere incluso in tutti gli script php che effettueranno l accesso al database. Come prima cosa, il file config.php include la dblibrary per poter usare la funzione opendb: include(../libraries/dblibrary.php ); Abbiamo aggiunto al file dblibrary.php il percorso per accedere al file. Il file config.php si trova nella directory api. Per accedere al file dblibrary.php, dobbiamo tornare indietro di una directory e poi entrare nella cartella libraries. Il simbolo.. permette di tornare indietro di una directory, mentre lo / permette di accedere alla directory che segue. In ambiente Windows, occorre sostituire il carattere / con il carattere \: include(..\libraries\dblibrary.php ); 1
2 A questo punto possiamo invocare la funzione opendb della dblibrary, passando dei parametri che abbiamo settato in precedenza attraverso delle variabili: $database = Esercitazione ; $username = root ; $password = ; $servername = localhost ; $db = opendb($database, $password, $username, $servername); La connessione al database è ora aperta ed è memorizzata nella variabile $db. Il file completo è il seguente: include(../libraries/dblibrary.php ); $database = Esercitazione ; $username = root ; $password = ; $servername = localhost ; $db = opendb($database, $password, $username, $servername); Ricordiamoci che sotto Windows, dobbiamo sostituire il carattere / con \. Ora possiamo passare all implementazione vera e propria della nostra API. Come prima cosa, l esercizio chiede di implementare una API che per ogni comune mostra le coordinate geografiche. Nella cartella API creiamo un file comuni.php che restituirà per ogni comune le coordinate geografiche. Come prima cosa, includiamo il file config.php che ci permette di aprire la connessione al database: Visto che il file config.php si trova nella stessa cartella del file comuni.php, non c è bisogno di aggiungere altri percorsi al file. Non c è bisogno di includere la dblibrary perché è già inclusa nel file config.php Una volta aperta la connessione, ricordiamoci subito di chiuderla in fondo, altrimenti poi potremmo dimenticarcene: // corpo di comuni.php 2
3 Ora, dobbiamo sostituire il commento // corpo di comuni.php con il corpo vero e proprio della api. Ricordiamoci di lasciare la closedb in fondo allo script. Supponiamo che nel nostro database Esercitazione, abbiamo memorizzato la tabella con il nome ComuniTerremotati. Dalla tabella dobbiamo estrarre il nome del comune e le coordinate geografiche (latitudine e longitudine). La query che dobbiamo fare è la seguente: SELECT Comune, latitude, longitude FROM ComuniTerremotati Possiamo passare questa query alla funzione select della dblibrary. Stampiamo anche il risultato tramite la funzione var_dump, che può essere utilizzata per stampare un array: $sql = SELECT Comune, latitude, longitude FROM ComuniTerremotati ; var_dump($recs); Il codice completo dello script comuni.php ottenuto fino ad ora è il seguente: $sql = SELECT Comune, latitude, longitude FROM ComuniTerremotati ; var_dump($recs); Guardando la stampa dell array, si può notare che la latitudine e la longitudine sono stampati come stringhe. Questo non va bene, perché in realtà si tratta di decimali. Occorre quindi sistemare il codice in modo da convertire le stringhe in float. Per fare questo, dobbiamo scorrere l array $recs, cercare le chiavi latitude e longitude e convertire il valore corrispondente in float. L array $recs è un array numerico, quindi, per accedere ai suoi elementi, possiamo usare un ciclo for: // corpo del for Ogni campo dell array $recs è a sua volta un array, questa volta di tipo associativo. Quindi per scorrere ogni elemento dell array $recs possiamo usare un ciclo foreach: // corpo del foreach 3
4 Se il campo chiave coincide con latitude o longitude, occorre fare la conversione di valore a float, altrimenti non c è bisogno di fare niente: if(($chiave == latitude ) ($chiave == longitude )) $recs[$i][$chiave] = floatval($valore); Da notare che il campo che vogliamo modificare si trova nella posizione i-esima dell array $recs in corrispondenza della chiave che stiamo analizzando. Quindi dobbiamo sostituire al valore corrente di $recs[$i][$chiave] lo stesso valore convertito però in float. Per rendere i dati accessibili a tutti i tipi di client, la nostra API dovrebbe fornire i risultati in JSON. JSON (JavaScript Object Notation) è un formato utilizzato per lo scambio dei dati in applicazioni client-server. Il JSON è un formato che serve per codificare un array in una stringa. In JSON un array numerico è rappresentato come un elenco di elementi separati da virgola e racchiusi tra parentesi quadre. Ad esempio: [ cane, gatto, topo ] Un array associativo invece è rappresentato da coppie chiave valore separate dalla virgola e racchiuse tra parentesi graffe. Ogni coppia chiave valore è rappresentata nel seguente modo: chiave : valore Un esempio di array associativo è il seguente: animale : cane, fiore : rosa, frutto : mela In PHP, affinché una API ritorni un array in JSON è necessario eseguire due passi: 1. includere all inizio dell API la chiamata ad una funzione che setta il formato del risultato in json 2. codificare l array risultato in json attraverso la funzione json_encode e stampare il risultato: Nel nostro caso, togliamo la stampa fatta con la var_dump e inseriamo il codice appena definito, facendo attenzione ad inserire la chiamata alla header all inizio del documento e la json_encode al posto della var_dump. Il risultato è il seguente: 4
5 $sql = SELECT Comune, latitude, longitude FROM ComuniTerremotati ; if(($chiave == latitude ) ($chiave == longitude )) $recs[$i][$chiave] = floatval($valore); Visualizzando il risultato dal browser, notiamo che non è molto chiaro. Per visualizzare meglio un json, possiamo installare un plugin per il nostro browser. Il plugin si chiama JSON View. Per installare il plugin su Google Chrome, andiamo nel menu Impostazioni, selezioniamo estensioni, poi prova altre estensioni. Nella barra di ricerca digitiamo jsonview e poi installiamolo. Per installare il plugin su Safari, selezionare il menu Safari, poi estensioni, cercare JSON ed installare json-lite. Per installare il plugin su Firefox, dal menu in alto a destra selezionare componenti aggiuntivi, quindi estensioni e cercare jsonview. A questo punto possiamo passare alla seconda parte dell esercizio, che richiede la creazione di una API che mostri per ogni provincia la popolazione prima del sisma. Per prima cosa rinominiamo il campo della tabella Popolazione prima del sisma in popolazione, per evitare problemi dovuti agli spazi. Per fare questo, usiamo Phpmyadmin, selezioniamo la tabella e quindi in corrispondenza del campo Popolazione prima del sisma selezionare modifica e cambiare il nome in Popolazione. Premere il tasto Salva. Ora scriviamo la query, che deve fare la somma di tutte le popolazioni prima del sisma per ogni provincia. Quindi, raggruppiamo i record per provincia e facciamo la somma del campo popolazione, usando l istruzione GROUP BY: SELECT SUM(Popolazione) AS Popolazione, Provincia FROM ComuniTerremotati GROUP BY Provincia Dentro la cartella api creiamo un file popolazione.php che mostrerà il risultato della nostra query. Come per il file comuni.php, includiamo il file config.php e impostiamo come json il tipo di risultato : 5
6 // corpo di popolazione.php Ora possiamo eseguire la query: $sql = SELECT SUM(Popolazione) AS Popolazione, Provincia FROM ComuniTerremotati GROUP BY Provincia ; e stampare il risultato: Come nel caso della latitudine e della longitudine per l API comuni.php, anche in popolazione.php il campo popolazione deve essere un intero. Pertanto va fatta la conversione da stringa a intero attraverso la funzione intval. Copiamo il codice scritto per comuni.php, avendo l accortezza di modificare latitudine e longitudine con popolazione e la funzione floatval con intval: if(($chiave == Popolazione )) $recs[$i][$chiave] = intval($valore); Il codice completo dello script popolazione.php è il seguente: $sql = SELECT SUM(Popolazione), Provincia FROM ComuniTerremotati GROUP BY Provincia ; if(($chiave == Popolazione )) $recs[$i][$chiave] = intval($valore); 6
7 Esercizio 2 Modificare il file comuni.php in modo da ricevere in ingresso tramite GET un parametro type. In base al valore del campo type, il file restituisce un risultato diverso: se type = coordinate, lo script restituisce le coordinate geografiche se type = url, lo script restituisce l url del comune 7
Esercitazione Google Maps
Esercitazione Google Maps Esercizio 1 Visualizzare i risultati della API comuni.php su una mappa geografica. Soluzione Come prima cosa, occorre creare una chiave di utilizzo della libreria Google Maps.
Esercitazione Highcharts
Esercitazione Highcharts Esercizio 1 Visualizzare i risultati della Web API popolazione.php attraverso un grafico a barre. Soluzione Per poter rappresentare i risultati della Web API popolazione attraverso
Phpmyadmin. Creazione Database
Phpmyadmin Phpmyadmin è un applicazione Web fornita direttamente con il pacchetto XAMPP. E utilizzata per la gestione delle tabelle SQL. Essa, infatti, permette di creare database, tabelle, importare ed
MySQL Migration Toolkit
MySQL Migration Toolkit Mysql Migration Toolkit è un wizard completamente grafico per migrare i dati da database come Oracle e Access a MySQL. Per utilizzarlo occorre innanzitutto lanciare un service MySQL
Come trasferire il vostro sito in Joomla da locale in remoto?
Come trasferire il vostro sito in Joomla da locale in remoto? Per sviluppare al meglio un sito web è buona abitudine crearne sempre una copia in locale sul proprio PC, questa mini-guida ti seguirà passo
DOCUMENTO DI INTEGRAZIONE CON GAMMA EVOLUTION INSTALLAZIONE DEL PLUGIN IN TUSTENA CRM
DOCUMENTO DI INTEGRAZIONE CON GAMMA EVOLUTION INSTALLAZIONE DEL PLUGIN IN TUSTENA CRM ATTENZIONE: Il plugin è compatibile solamente con la versione 11 di Tustena. Il pacchetto di configurazione contiene
Connessione con MySQL
Connessione con MySQL Architettura Server-Side Eventuali parametri cookie sessioni Elaborazione SELECT... DATABASE Quando i dati sono molti e la persistenza deve andare altre la sessione o la durata
La connessione ai database MySQL tramite script PHP versione 5.5
La connessione ai database MySQL tramite script PHP versione 5.5 Php è un linguaggio di scripting che estende le funzionalità del server Web, mentre MySQL è un programma server che si occupa della gestione
Istruzioni per il cambio della password della casella di posta
Istruzioni per il cambio della password della casella di posta La password generata e fornita al cliente in fase di creazione della casella di posta è una password temporanea, il cliente è tenuto a modificarla.
Come creare un modulo per Joomla?
Come creare un modulo per Joomla? Dopo aver trattato a fondo il tema della realizzazione di template per Joomla, torniamo a parlare di questo CMS per mostrarti il procedimento da seguire per la creazione
Configurazione di Eclipse con Liferay 5.2.2/6.0.6/6.1.0 Mac/Linux
Configurazione di Eclipse con Liferay 5.2.2/6.0.6/6.1.0 Mac/Linux Indice:! - Pre-requisiti!!!!!!!! pag. 1! - Configurazione dei file in source e sdk!!! pag. 2,3! - Creazione dei database mysql!!!! pag.
Laboratorio Progettazione Web PHP e FORMs HTML - Lezione 8. Andrea Marchetti IIT-CNR 2011/2012
Laboratorio Progettazione Web PHP e FORMs HTML - Lezione 8 Andrea Marchetti IIT-CNR [email protected] 2011/2012 Architettura di una applicazione Web Browser Web HTTP Server Web Dati View Control
Parte 6 JSON, Web Storage API, funzioni JavaScript e user script
Sapienza Università di Roma corso di laurea in Ingegneria informatica e automatica Linguaggi e tecnologie per il Web a.a. 2017/2018 Parte 6 JSON, Web Storage API, funzioni JavaScript e user script Riccardo
Connessione con MySQL
Connessione con MySQL Architettura Server-Side Eventuali parametri cookie sessioni Elaborazione SELECT... DATABASE Quando i dati sono molti e la persistenza deve andare altre la sessione o la durata
Per poter interagire con un database in rete mediante uno script php bisogna. innanzitutto cerare una connessione. Ciò si ottiene mediante la funzione
MYSQL E PHP Per poter interagire con un database in rete mediante uno script php bisogna innanzitutto cerare una connessione. Ciò si ottiene mediante la funzione MySQL_connect(nome del host, nome utente,
Spiegazioni esercizio Gestione Tabella con PHP e MySQL
Spiegazioni esercizio Gestione Tabella con PHP e MySQL foglio_di_stile.css (foglio di stile esterno) Questo file contiene: 1. la struttura generale delle quattro pagine web dinamiche: index.php, inserisci.php,
ODOO può essere installato su Linux, Windows e Macintosh, ma la piattaforma di riferimento indicata da Odoo sa è Linux Ubuntu.
INSTALLAZIONE ODOO può essere installato su Linux, Windows e Macintosh, ma la piattaforma di riferimento indicata da Odoo sa è Linux Ubuntu. Ci sono due distribuzioni, quella ufficiale Odoo sa ed il backport
Jamio openwork data source connector for QlikView
Questo documento contiene informazioni di proprietà di openwork s.r.l. e deve essere utilizzato esclusivamente in relazione alle finalità per le quali è stato predisposto. È vietata qualsiasi forma di
Laboratorio Progettazione Web Modello di applicazione Web
Laboratorio Progettazione Web Modello di applicazione Web Andrea Marchetti IIT-CNR AA 2016/2017 Overview Questa lezione mettiamo insieme tutte le cose dette durante il corso Applicazioni 3 tier PhpMyAdmin
GUIDA ALL INSERIMENTO DI TESTI E DOCUMENTI NEL NUOVO SITO DEL COMUNE DI CERVIA Versione 1.0
GUIDA ALL INSERIMENTO DI TESTI E DOCUMENTI NEL NUOVO SITO DEL COMUNE DI CERVIA Versione 1.0 Indice - ACCESSO AL BACKEND DEL SITO WEB e LOGIN - INSERIMENTO FILE IN GESTIONE FILE - INSERIMENTO NEWS Realizzato
CORSO DI PROGRAMMAZIONE
ISTITUTO TECNICO INDUSTRIALE G. M. ANGIOY SASSARI CORSO DI PROGRAMMAZIONE PROSECUZIONE CON ALTRE BASI DI DATI DISPENSA 21.02 21-02_DBSQL_[ver_02] Questa dispensa è rilasciata sotto la licenza Creative
QuizFaber. nel «CLOUD»
QuizFaber nel «CLOUD» 1 L'idea è quella di utilizzare il proprio spazio personale su Google Drive (gratuito al pari del noto servizio di posta elettronica GMail) come database per raccogliere i risultati
Foglio Elettronico Lezione 1
- Introduzione - Celle e riferimenti - Formule - Approfondimenti - Funzioni logiche Sommario Introduzione - Foglio elettronico o foglio di calcolo - Cos'è? Strumento per raccogliere dati organizzati in
PRINCIPI DI INFORMATICA CORSO DI LAUREA IN SCIENZE BIOLOGICHE
PRINCIPI DI INFORMATICA CORSO DI LAUREA IN SCIENZE BIOLOGICHE Gennaro Cordasco e Rosario De Chiara {cordasco,dechiara}@dia.unisa.it Dipartimento di Informatica ed Applicazioni R.M. Capocelli Laboratorio
Configurazione database MySQL
Configurazione database MySQL www.powerwolf.it 1. Premessa Questo documento è rivolto a coloro che necessitano di configurare un database MySQL su un proprio server MySQL (locale o remoto) e adoperare
Creare l array presentato nei lucidi ([pippo, pluto, etc])
Creare l array presentato nei lucidi ([pippo, pluto, etc]) Visualizzare sul browser tutto il contenuto dell array formattato come tabella, con una riga di intestazione Personaggi in grassetto e poi una
Il proprietario di una catena di negozi vuole confrontare il reddito (in euro) dei suoi 5 negozi, riportato nella seguente tabella
Primo esempio (es. 2.1) Il proprietario di una catena di negozi vuole confrontare il reddito (in euro) dei suoi 5 negozi, riportato nella seguente tabella Negozio Reddito Negozio 1 21.500,00 Negozio 2
Laboratorio Progettazione Web PHP e MySQL. Andrea Marchetti IIT-CNR 2014/2015
Laboratorio Progettazione Web PHP e MySQL Andrea Marchetti IIT-CNR 2014/2015 Architettura di una applicazione Web Browser Web HTTP Server Web Dati Presentation Application Storage PHP e DataBase Quando
La struttura di un tema WordPress
La struttura di un tema WordPress Basi per lavorare correttamente alla creazione o modifica di temi Francesco Grasso @francgrasso WordPress Developer & Trainer fb.me/francesco.aci effegidesign.it Esigenza:
Installazione di EasyPhp. Avviare EasyPhp. La finestra di amministrazione di EasyPhp
Installazione di EasyPhp Scaricare la versione più recente di EasyPhp dal sito ufficiale (http://www.easyphp.org/). Scegliere la versione di sviluppo (DEVELOPMENT SERVER) più adatta al proprio sistema
Ricerca obiettivo. Pag. 1
Ricerca obiettivo La ricerca obiettivo è un risolutore di un problema. Come problema imponiamo la ricerca del punto di intersezione tra due grafici di funzioni. Creiamo il grafico della funzione espressa
Scelta del Browser. Accesso Area Redazione
Scelta del Browser Si consiglia l utilizzo dei più comuni browser: Internet Explorer Safari Opera Mozilla Firefox Google Chrome Accesso Area Redazione Per poter accedere all area redazione bisogna: 1.
2011 Politecnico di Torino 1
SQL per le applicazioni Call Level Interface Le richieste sono inviate al DBMS per mezzo di funzioni del linguaggio ospite soluzione basata su interfacce predefinite API, Application Programming Interface
MySQL 2 (maisiquel tu ovvero gestire un database MySQL tramite LibreOffice)
MySQL 2 (maisiquel tu ovvero gestire un database MySQL tramite LibreOffice) Augusto Scatolini ([email protected]) ([email protected]) Miniguida n. 182 Ver. 1.0 marzo 2013 La
Laboratorio di Progettazione Web
PHP e MySQL (2) Laboratorio di Progettazione Web AA 2009/2010 Chiara Renso ISTI- CNR - [email protected] Nelle pagine web, quando le tabelle sono molto complesse, può risultare utile suddividere la visualizzazione
Tutorial Calcolatrice
Tutorial Calcolatrice Creiamo una semplice calcolatrice. Con questa calcolatrice potremo sommare, sottrarre, moltiplicare o dividere due numeri tra loro. Prima di tutto cancelliamo lo sprite di default
Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java
Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java AA 2018/2019 Tutor Lorenzo Rosa [email protected] 2 Programma Introduzione al calcolatore e Java Linguaggio Java, basi e
CREARE UN SITO WEB CON IL CMS
CREARE UN SITO WEB CON IL CMS INSTALLAZIONE XAMPP CREAZIONE DEL DB IN LOCALE INSTALLAZIONE JOOMLA IN LOCALE MATERIALE DIDATTICO A CORREDO DEL CORSO CREAZIONE SITI WEB AMMINISTRABILI CON JOOMLA! Autore:MASSIMO
PHP & MySQL. Giselda De Vita
PHP & MySQL Giselda De Vita - 2014 1 Per creare un applicazione WEB su APACHE, in linguaggio PHP, con Base Dati MySQL, possiamo lavorare in locale o in rete. Per lavorare in locale abbiamo bisogno di installare
Personalizzazione del report
Creare un report In questa lezione ci dedicheremo alla stampa dei dati tramite lo strumento dei report. Access ci permette di progettare stampe organizzando i dati in modo personalizzato. Questa caratteristica
Digitiamo il codice base di una pagina secondo lo standard HTML5 e inseriamo un titolo <h1> con il testo Benvenuti sulla mia homepage
Brackets Editor per la creazione e la modifica di fogli di stile CSS Brackets è un editor open source per i linguaggi HTML, CSS e Javascript, distribuito con licenza MIT. Installare il file brackets-sprint-24-win.msi
Collaboratori 2009 1 Collaboratori 2009 Introduzione Da inizio ottobre è stato messo in produzione un nuovo portale per la ricezione dei materiali digitali prodotti da inviati e collaboratori esterni.
XAMPP Installazione e configurazione
XAMPP Installazione e configurazione Dispensa XAMPP - pag.1 XAMPP è una piattaforma software gratuita costituita da Apache Http Server, un database MySQL e tutti gli strumenti necessari per usare i linguaggi
Corso base PHP Copyright (c) 2011 Antonio Gallo
Corso base PHP Copyright (c) 2011 Antonio Gallo ([email protected]) Indice generale 1 Come funziona: Apache, Mysql e PHP...3 2 Da capire...6 3 Preparare il vostro computer: installare il server Apache,
Procedura di installazione rrunnweb
Procedura di installazione rrunnweb Preparazione dell ambiente RRUNNWEB può girare su qualsiasi piattaforma che fornisca i seguenti servizi: - un server web locale (ad esempio: Apache ver.2.2 o successive,
Installare Apache, PHP, MySQL sul Raspberry PI Zero
Installare Apache, PHP, MySQL sul Raspberry PI Zero In questo articolo vedremo come installare sul Raspberry PI Zero i principali programmi che vengono usati nei progetti domotici e non solo. Ecco la lista
Istruzioni per l apertura dei documenti in Firma Digitale (p7m)
Istruzioni per l apertura dei documenti in Firma Digitale (p7m) Questa breve guida illustra come visualizzare correttamente gli atti amministrativi pubblicati in originale ed in Firma Digitale. Le Indicazioni
Guida introduttiva al PHP
Fabio Castellini 26/01/2016 Guida introduttiva al PHP Cos'è il PHP? Il PHP è un linguaggio di scripting interpretato, simile al JavaScript, per intenderci, originariamente concepito per la programmazione
Corso di Access. Prerequisiti. Modulo L2 A (Access) Le query
Corso di Access Modulo L2 A (Access) 2.3.1 Le query 1 Prerequisiti Concetto di database relazionale Utilizzo elementare del computer Concetti fondamentali di basi di dati Interrogazione di un DB 2 1 Introduzione
