SlideShare a Scribd company logo
1 of 17
Download to read offline
Stefano Floris,
Versione marzo 2015
Realizzare programmi gestionali in ambiente
Android con HTML e PHP, Ajax, Json
Pubblicato su
www.troppocurioso.altervista.org
E' arrivato il momento di
provare a realizzare delle
APP gestionali.
Applicazioni che girano su
dispositivi Android e che
accedono ad un database.
PHP, Ajax-Json e MYSQL
verso la programmazione gestionale
di dispositivi mobili Android
Per vedere una copia del testo della licenza visita il sito
http://www.creativecommons.it/Licenze
Stefano Floris, 2015
www.troppocurioso.altervista.org
Questa opera è sotto licenza
creativa (di tipo copyleft)
Attribuzione-Non commerciale-
Condividi allo stesso modo Generico.
Le applicazioni realizzate con
HTML e PHP viste fin qui erano
pensate per girare su pc. La
progettazione della loro
interfaccia era come illustrato
nella pagina seguente.
PHP, Ajax-Json e MYSQL
PHP, Ajax-Json e MYSQL
dd
E' la “vecchia” gestione che abbiamo
studiato nel capitolo 4: una pagina html
che chiama una pagina php che
interroga il db, prende il recordset e lo
visualizza.
Con i dispositivi mobili cambia
la prospettiva. Ci sono nel
mondo tanti dispositivi che
chiedono accesso ai db. Se i
server dovessero rispondere a
questo incredibile numero di
richieste scoppierebbero di
super lavoro, e allora...
PHP, Ajax-Json e MYSQL
Perché non far lavorare i client?
PHP, Ajax-Json e MYSQL
Questo è una
versione dello
stesso progetto. Di
seguito vi spiego.
Ecco cosa cambia. La
prima pagina, quella
html conterrà anche il
codice js per gestire il
risultato. Sarà la CPU
del client a
preoccuparsi di
visualizzare i dati.
Come vedete la seconda pagina è
quasi vuota. Il codice Php sarà ridotto:
svolgerà solo l'interrogazione al db ma
non gestirà piu' la parte di
visualizzazione dei risultati. La gestione
dell'interfaccia non è piu' appannaggio
del php ma del javascript sul client.
Il server lavorerà solo
sull'interrogazione al
db. Manderà il risultato
al client.
PHP, Ajax-Json e MYSQL
In sintesi. PHP si
utilizza per gestire il
database. HTMl e
javascript per gestire
l'interfaccia utente.
La pagina Php continua ad accedere al
db e a formulare la richiesta di dati (il
comando SQL). Il risultato viene inviato
alla pagina chiamante che lo interpreta
e lo visualizza.
Il dialogo fra pagina
chiamante e pagina php
avviene tramite il
protocollo di Ajax-json
che non è altro che un
formato di interscambio
di dati.
PHP, Ajax-Json e MYSQL
<body >
Elenco dei fornitori
Lancia: <input type="button"
onClick="prova()" name="fornitori"
value="vedi lista fornitori" ><br>
<div id="select" style="visibility:
hidden" style="text-align: center;
width: 100%;">
<select id="fornitori">
</select>
<br /> <br />
</div>
</body>
</html>
Analizziamo il
codice. Questo è
il body della
pagina html.
La novità è nella
parte delle div e
la gestione
dell'evento on-
click con una
funzione
javascript che
vediamo di
seguito.
PHP, Ajax-Json e MYSQL
<body >
Elenco dei fornitori
Lancia: <input type="button"
onClick="prova()" name="fornitori"
value="vedi lista fornitori" ><br>
<div id="select" style="visibility:
hidden" style="text-align: center;
width: 100%;">
<select id="fornitori">
</select>
<br /> <br />
</div>
</body>
</html>
Qui abbiamo una
pagina dove una
parte di oggetti
non sono visibili
(hidden). Lo
saranno
successivamente
, dopo essere
stati popolati dei
dati estratti dal
db.
PHP, Ajax-Json e MYSQL
Della stessa pagina vediamo adesso la
parte javascript.
PHP, Ajax-Json e MYSQL
<script type="text/javascript">
function prova() {
//alert('Benvenuto in JSON!');
var url = "accesso_db.php";
var sel = document.getElementById('fornitori');
var obj;
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", url, true);
// Effettuo la richiesta ajax
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
// In risposta dal mio file php avrò una stringa json e
// questa funzione la trasformerà in oggetto
obj = JSON.parse(xmlhttp.responseText);
// Ciclo ogni oggetto e rimepio la selectr con i dati
for ( i = 0; i < obj.length; i++) {
var opt = document.createElement('option');
opt.innerHTML = obj[i].ragionesoc;
opt.value = obj[i].id_fornitore;
sel.appendChild(opt);
}
document.getElementById("select").style.visibility="visible";
}
}
xmlhttp.send();
}
</script>
La parte js
si occupa di
chiamare la
pagina
.php,
inviando i
dati che
servono per
la query e
di ricevere
il recordset
in formato
stringa
json.
PHP, Ajax-Json e MYSQL
Adesso diamo uno sguardo alla
pagina .php.
PHP, Ajax-Json e MYSQL
<?php
// variabili di accesso al server e a MySQL
$host="172.16.0.24"; //replace with your
hostname
$username="floris"; //replace with your
username
$password="xxxxxxxx"; //replace with your
password
$db_name="floris_energia"; //replace with your
database
// ***********************
// Accesso al DB
// ***********************
$con=mysqli_connect($host, $username, $password)or
die("cannot connect");
mysqli_select_db($con,$db_name) or die ("cannot
select DB");
1/3.
Questa
parte qui
non ha
niente di
nuovo
rispetto a
quanto
conosciam
o.
PHP, Ajax-Json e MYSQL
// ***********************
// QUERY
// ***********************
$sql = "select * from fornitori"; //replace with your
table name
$result = mysqli_query($con,$sql);
$json = array();
if(mysqli_num_rows($result)){
// Scorro il record set (risultato della query)
while($row=mysqli_fetch_object($result)) {
// Vecchio metododi visualizzazione
// sostituito con il sistema Json
//echo "$row[0] - $row[1]";
// Metto nel vettore, alla prima riga libera
// il contenuto della riga attuale del
recordset
$json[]=$row;
}
}
2/3
In questa
parte si
crea la
query SQL,
si invia
come
sempre ed
il risultato
viene
salvato in
un vettore
(json).
PHP, Ajax-Json e MYSQL
// ***********************
// Chiudo DB
// ***********************
mysqli_close($con);
// ***********************
// Invio la stringa
// ***********************
echo json_encode($json);
?>
3/3
Si chiude il
db e si invia
in output il
recordset
che verrà
interpretato
dalle
funzioni
json di
javascrit
come visto
sopra.
PHP, Ajax-Json e MYSQL
Abbiamo terminato.
Il prossimo passo è la realizzazione di
APP con accesso a DB.
Seguiteci su
www.altervista.troppocuriso.org
PHP, Ajax-Json e MYSQL

More Related Content

Viewers also liked

Php e data base creare tabelle con mysql
Php e data base  creare tabelle con mysqlPhp e data base  creare tabelle con mysql
Php e data base creare tabelle con mysqlHigh Secondary School
 
Php e data base introduzione a mysql
Php e data base  introduzione a mysqlPhp e data base  introduzione a mysql
Php e data base introduzione a mysqlHigh Secondary School
 
Php e data_base_popolare_un_db_mysql
Php e data_base_popolare_un_db_mysqlPhp e data_base_popolare_un_db_mysql
Php e data_base_popolare_un_db_mysqlHigh Secondary School
 
PHP, ricerca dati_in_file_sequenziali
PHP, ricerca dati_in_file_sequenzialiPHP, ricerca dati_in_file_sequenziali
PHP, ricerca dati_in_file_sequenzialiHigh Secondary School
 
PHP Introduzione a javascript e validazione
PHP Introduzione a javascript e validazionePHP Introduzione a javascript e validazione
PHP Introduzione a javascript e validazioneHigh Secondary School
 
Php e database: creare relazioni fra tabelle
Php e database: creare relazioni fra tabellePhp e database: creare relazioni fra tabelle
Php e database: creare relazioni fra tabelleHigh Secondary School
 

Viewers also liked (8)

Php e data base creare tabelle con mysql
Php e data base  creare tabelle con mysqlPhp e data base  creare tabelle con mysql
Php e data base creare tabelle con mysql
 
Php e data base introduzione a mysql
Php e data base  introduzione a mysqlPhp e data base  introduzione a mysql
Php e data base introduzione a mysql
 
Php e data_base_popolare_un_db_mysql
Php e data_base_popolare_un_db_mysqlPhp e data_base_popolare_un_db_mysql
Php e data_base_popolare_un_db_mysql
 
Php e data base accedere a mysql
Php e data base  accedere a mysqlPhp e data base  accedere a mysql
Php e data base accedere a mysql
 
PHP, ricerca dati_in_file_sequenziali
PHP, ricerca dati_in_file_sequenzialiPHP, ricerca dati_in_file_sequenziali
PHP, ricerca dati_in_file_sequenziali
 
PHP Introduzione a javascript e validazione
PHP Introduzione a javascript e validazionePHP Introduzione a javascript e validazione
PHP Introduzione a javascript e validazione
 
Php e database: creare relazioni fra tabelle
Php e database: creare relazioni fra tabellePhp e database: creare relazioni fra tabelle
Php e database: creare relazioni fra tabelle
 
Php e database: php mysql
Php e database: php mysqlPhp e database: php mysql
Php e database: php mysql
 

Similar to 6.01 php ajax_json_mysql

Progettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e AjaxProgettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e AjaxGiovanni Cappellini
 
Hands on MVC - Mastering the Web
Hands on MVC - Mastering the WebHands on MVC - Mastering the Web
Hands on MVC - Mastering the WebClaudio Gandelli
 
Maria Grazia Maffucci- programmazione presentazione
Maria Grazia Maffucci- programmazione presentazioneMaria Grazia Maffucci- programmazione presentazione
Maria Grazia Maffucci- programmazione presentazioneMaria Grazia Maffucci
 
Applicazioni RESTful con ASP.NET Web Api
Applicazioni RESTful con ASP.NET Web ApiApplicazioni RESTful con ASP.NET Web Api
Applicazioni RESTful con ASP.NET Web ApiPietro Libro
 
AngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webAngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webLuca Milan
 
Microsoft Azure for DreamSpark Academic Tour - 22/01/2016
Microsoft Azure for DreamSpark Academic Tour - 22/01/2016Microsoft Azure for DreamSpark Academic Tour - 22/01/2016
Microsoft Azure for DreamSpark Academic Tour - 22/01/2016Gaetano Paternò
 
Web Services, le librerie Nusoap e PHP5 nell’interrogazione dei dati demograf...
Web Services, le librerie Nusoap e PHP5 nell’interrogazione dei dati demograf...Web Services, le librerie Nusoap e PHP5 nell’interrogazione dei dati demograf...
Web Services, le librerie Nusoap e PHP5 nell’interrogazione dei dati demograf...Vincenzo Patruno
 
RESTful APIs (ITA) - /w WebMachine
RESTful APIs (ITA) - /w WebMachineRESTful APIs (ITA) - /w WebMachine
RESTful APIs (ITA) - /w WebMachineGiancarlo Valente
 
Matteo Bicocchi - Introducing HTML5
Matteo Bicocchi - Introducing HTML5Matteo Bicocchi - Introducing HTML5
Matteo Bicocchi - Introducing HTML5Pietro Polsinelli
 
WPF & LINQ: VB T&T Community After Hour @ Microsoft Days 08
WPF & LINQ: VB T&T Community After Hour @ Microsoft Days 08WPF & LINQ: VB T&T Community After Hour @ Microsoft Days 08
WPF & LINQ: VB T&T Community After Hour @ Microsoft Days 08Alessandro Del Sole
 
SmartClient by Isomorphic - Rich internet applications
SmartClient by Isomorphic - Rich internet applicationsSmartClient by Isomorphic - Rich internet applications
SmartClient by Isomorphic - Rich internet applicationsClaudio Bosticco
 
Write less do more...with jQuery
Write less do more...with jQueryWrite less do more...with jQuery
Write less do more...with jQueryXeDotNet
 
E suap - tecnologie client
E suap - tecnologie client E suap - tecnologie client
E suap - tecnologie client Sabino Labarile
 

Similar to 6.01 php ajax_json_mysql (20)

Progettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e AjaxProgettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
 
Html5 e PHP
Html5 e PHPHtml5 e PHP
Html5 e PHP
 
Many Designs Elements
Many Designs ElementsMany Designs Elements
Many Designs Elements
 
Hands on MVC - Mastering the Web
Hands on MVC - Mastering the WebHands on MVC - Mastering the Web
Hands on MVC - Mastering the Web
 
Novità di Asp.Net 4.0
Novità di Asp.Net 4.0Novità di Asp.Net 4.0
Novità di Asp.Net 4.0
 
Maria Grazia Maffucci- programmazione presentazione
Maria Grazia Maffucci- programmazione presentazioneMaria Grazia Maffucci- programmazione presentazione
Maria Grazia Maffucci- programmazione presentazione
 
Laravel Framework PHP
Laravel Framework PHPLaravel Framework PHP
Laravel Framework PHP
 
Corso angular js componenti
Corso angular js componentiCorso angular js componenti
Corso angular js componenti
 
#dd12 grillo daniele_xpages_tips_tricks_rev2
#dd12 grillo daniele_xpages_tips_tricks_rev2#dd12 grillo daniele_xpages_tips_tricks_rev2
#dd12 grillo daniele_xpages_tips_tricks_rev2
 
Applicazioni RESTful con ASP.NET Web Api
Applicazioni RESTful con ASP.NET Web ApiApplicazioni RESTful con ASP.NET Web Api
Applicazioni RESTful con ASP.NET Web Api
 
Ddive Xpage852
Ddive Xpage852Ddive Xpage852
Ddive Xpage852
 
AngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webAngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni web
 
Microsoft Azure for DreamSpark Academic Tour - 22/01/2016
Microsoft Azure for DreamSpark Academic Tour - 22/01/2016Microsoft Azure for DreamSpark Academic Tour - 22/01/2016
Microsoft Azure for DreamSpark Academic Tour - 22/01/2016
 
Web Services, le librerie Nusoap e PHP5 nell’interrogazione dei dati demograf...
Web Services, le librerie Nusoap e PHP5 nell’interrogazione dei dati demograf...Web Services, le librerie Nusoap e PHP5 nell’interrogazione dei dati demograf...
Web Services, le librerie Nusoap e PHP5 nell’interrogazione dei dati demograf...
 
RESTful APIs (ITA) - /w WebMachine
RESTful APIs (ITA) - /w WebMachineRESTful APIs (ITA) - /w WebMachine
RESTful APIs (ITA) - /w WebMachine
 
Matteo Bicocchi - Introducing HTML5
Matteo Bicocchi - Introducing HTML5Matteo Bicocchi - Introducing HTML5
Matteo Bicocchi - Introducing HTML5
 
WPF & LINQ: VB T&T Community After Hour @ Microsoft Days 08
WPF & LINQ: VB T&T Community After Hour @ Microsoft Days 08WPF & LINQ: VB T&T Community After Hour @ Microsoft Days 08
WPF & LINQ: VB T&T Community After Hour @ Microsoft Days 08
 
SmartClient by Isomorphic - Rich internet applications
SmartClient by Isomorphic - Rich internet applicationsSmartClient by Isomorphic - Rich internet applications
SmartClient by Isomorphic - Rich internet applications
 
Write less do more...with jQuery
Write less do more...with jQueryWrite less do more...with jQuery
Write less do more...with jQuery
 
E suap - tecnologie client
E suap - tecnologie client E suap - tecnologie client
E suap - tecnologie client
 

More from High Secondary School

PHP: programmi gestionali, introduzione
PHP: programmi gestionali, introduzionePHP: programmi gestionali, introduzione
PHP: programmi gestionali, introduzioneHigh Secondary School
 
Una bottega del Commercio Equo & Solidale
Una bottega del Commercio Equo & SolidaleUna bottega del Commercio Equo & Solidale
Una bottega del Commercio Equo & SolidaleHigh Secondary School
 
Comunità Scolastiche Sostenibili 2007
Comunità Scolastiche Sostenibili 2007Comunità Scolastiche Sostenibili 2007
Comunità Scolastiche Sostenibili 2007High Secondary School
 
Visual Basic, modulo e sottoprocedure
Visual Basic, modulo e sottoprocedureVisual Basic, modulo e sottoprocedure
Visual Basic, modulo e sottoprocedureHigh Secondary School
 
Programmare In Visual Basic, prima lezione
Programmare In Visual Basic, prima lezioneProgrammare In Visual Basic, prima lezione
Programmare In Visual Basic, prima lezioneHigh Secondary School
 
Comunità Scolastiche Sostenibili 2007/2008
Comunità Scolastiche Sostenibili 2007/2008Comunità Scolastiche Sostenibili 2007/2008
Comunità Scolastiche Sostenibili 2007/2008High Secondary School
 
Comunità Scolastiche Sostenibili 2006/2007
Comunità Scolastiche Sostenibili 2006/2007 Comunità Scolastiche Sostenibili 2006/2007
Comunità Scolastiche Sostenibili 2006/2007 High Secondary School
 

More from High Secondary School (20)

Da html in_poi, verso PHP
Da html in_poi, verso PHPDa html in_poi, verso PHP
Da html in_poi, verso PHP
 
PHP: gestione file sequenziale
PHP: gestione file sequenzialePHP: gestione file sequenziale
PHP: gestione file sequenziale
 
PHP: programmi gestionali, introduzione
PHP: programmi gestionali, introduzionePHP: programmi gestionali, introduzione
PHP: programmi gestionali, introduzione
 
Visual basic: odbc su MySql
Visual basic: odbc su MySqlVisual basic: odbc su MySql
Visual basic: odbc su MySql
 
Dal cacao al cioccolato
Dal cacao al cioccolatoDal cacao al cioccolato
Dal cacao al cioccolato
 
Una bottega del Commercio Equo & Solidale
Una bottega del Commercio Equo & SolidaleUna bottega del Commercio Equo & Solidale
Una bottega del Commercio Equo & Solidale
 
Comunità Scolastiche Sostenibili 2007
Comunità Scolastiche Sostenibili 2007Comunità Scolastiche Sostenibili 2007
Comunità Scolastiche Sostenibili 2007
 
Visual Basic, Equazioni Sec Grado
Visual Basic, Equazioni Sec GradoVisual Basic, Equazioni Sec Grado
Visual Basic, Equazioni Sec Grado
 
Visual Basic, modulo e sottoprocedure
Visual Basic, modulo e sottoprocedureVisual Basic, modulo e sottoprocedure
Visual Basic, modulo e sottoprocedure
 
VB Cicli Lavoro Repeat
VB  Cicli  Lavoro  RepeatVB  Cicli  Lavoro  Repeat
VB Cicli Lavoro Repeat
 
Blog Riferimenti Risorse (4)
Blog Riferimenti Risorse (4)Blog Riferimenti Risorse (4)
Blog Riferimenti Risorse (4)
 
Blog Cosa E'?
Blog Cosa E'?Blog Cosa E'?
Blog Cosa E'?
 
Blog Creazione
Blog CreazioneBlog Creazione
Blog Creazione
 
Blog Manutenzione
Blog ManutenzioneBlog Manutenzione
Blog Manutenzione
 
Contenuti WEB creati dagli Utenti
Contenuti WEB creati dagli UtentiContenuti WEB creati dagli Utenti
Contenuti WEB creati dagli Utenti
 
Programmare In Visual Basic, prima lezione
Programmare In Visual Basic, prima lezioneProgrammare In Visual Basic, prima lezione
Programmare In Visual Basic, prima lezione
 
Funzione se Incapsulata
Funzione se IncapsulataFunzione se Incapsulata
Funzione se Incapsulata
 
Supermercato
SupermercatoSupermercato
Supermercato
 
Comunità Scolastiche Sostenibili 2007/2008
Comunità Scolastiche Sostenibili 2007/2008Comunità Scolastiche Sostenibili 2007/2008
Comunità Scolastiche Sostenibili 2007/2008
 
Comunità Scolastiche Sostenibili 2006/2007
Comunità Scolastiche Sostenibili 2006/2007 Comunità Scolastiche Sostenibili 2006/2007
Comunità Scolastiche Sostenibili 2006/2007
 

Recently uploaded

Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxlorenzodemidio01
 
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxLorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxlorenzodemidio01
 
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxLorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxlorenzodemidio01
 
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaXI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaStefano Lariccia
 
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaXIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaStefano Lariccia
 
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxLorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxlorenzodemidio01
 

Recently uploaded (6)

Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptx
 
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxLorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
 
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxLorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
 
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaXI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
 
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaXIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
 
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxLorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
 

6.01 php ajax_json_mysql

  • 1. Stefano Floris, Versione marzo 2015 Realizzare programmi gestionali in ambiente Android con HTML e PHP, Ajax, Json Pubblicato su www.troppocurioso.altervista.org E' arrivato il momento di provare a realizzare delle APP gestionali. Applicazioni che girano su dispositivi Android e che accedono ad un database. PHP, Ajax-Json e MYSQL verso la programmazione gestionale di dispositivi mobili Android
  • 2. Per vedere una copia del testo della licenza visita il sito http://www.creativecommons.it/Licenze Stefano Floris, 2015 www.troppocurioso.altervista.org Questa opera è sotto licenza creativa (di tipo copyleft) Attribuzione-Non commerciale- Condividi allo stesso modo Generico.
  • 3. Le applicazioni realizzate con HTML e PHP viste fin qui erano pensate per girare su pc. La progettazione della loro interfaccia era come illustrato nella pagina seguente. PHP, Ajax-Json e MYSQL
  • 4. PHP, Ajax-Json e MYSQL dd E' la “vecchia” gestione che abbiamo studiato nel capitolo 4: una pagina html che chiama una pagina php che interroga il db, prende il recordset e lo visualizza.
  • 5. Con i dispositivi mobili cambia la prospettiva. Ci sono nel mondo tanti dispositivi che chiedono accesso ai db. Se i server dovessero rispondere a questo incredibile numero di richieste scoppierebbero di super lavoro, e allora... PHP, Ajax-Json e MYSQL Perché non far lavorare i client?
  • 6. PHP, Ajax-Json e MYSQL Questo è una versione dello stesso progetto. Di seguito vi spiego.
  • 7. Ecco cosa cambia. La prima pagina, quella html conterrà anche il codice js per gestire il risultato. Sarà la CPU del client a preoccuparsi di visualizzare i dati. Come vedete la seconda pagina è quasi vuota. Il codice Php sarà ridotto: svolgerà solo l'interrogazione al db ma non gestirà piu' la parte di visualizzazione dei risultati. La gestione dell'interfaccia non è piu' appannaggio del php ma del javascript sul client. Il server lavorerà solo sull'interrogazione al db. Manderà il risultato al client. PHP, Ajax-Json e MYSQL
  • 8. In sintesi. PHP si utilizza per gestire il database. HTMl e javascript per gestire l'interfaccia utente. La pagina Php continua ad accedere al db e a formulare la richiesta di dati (il comando SQL). Il risultato viene inviato alla pagina chiamante che lo interpreta e lo visualizza. Il dialogo fra pagina chiamante e pagina php avviene tramite il protocollo di Ajax-json che non è altro che un formato di interscambio di dati. PHP, Ajax-Json e MYSQL
  • 9. <body > Elenco dei fornitori Lancia: <input type="button" onClick="prova()" name="fornitori" value="vedi lista fornitori" ><br> <div id="select" style="visibility: hidden" style="text-align: center; width: 100%;"> <select id="fornitori"> </select> <br /> <br /> </div> </body> </html> Analizziamo il codice. Questo è il body della pagina html. La novità è nella parte delle div e la gestione dell'evento on- click con una funzione javascript che vediamo di seguito. PHP, Ajax-Json e MYSQL
  • 10. <body > Elenco dei fornitori Lancia: <input type="button" onClick="prova()" name="fornitori" value="vedi lista fornitori" ><br> <div id="select" style="visibility: hidden" style="text-align: center; width: 100%;"> <select id="fornitori"> </select> <br /> <br /> </div> </body> </html> Qui abbiamo una pagina dove una parte di oggetti non sono visibili (hidden). Lo saranno successivamente , dopo essere stati popolati dei dati estratti dal db. PHP, Ajax-Json e MYSQL
  • 11. Della stessa pagina vediamo adesso la parte javascript. PHP, Ajax-Json e MYSQL
  • 12. <script type="text/javascript"> function prova() { //alert('Benvenuto in JSON!'); var url = "accesso_db.php"; var sel = document.getElementById('fornitori'); var obj; var xmlhttp = new XMLHttpRequest(); xmlhttp.open("GET", url, true); // Effettuo la richiesta ajax xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { // In risposta dal mio file php avrò una stringa json e // questa funzione la trasformerà in oggetto obj = JSON.parse(xmlhttp.responseText); // Ciclo ogni oggetto e rimepio la selectr con i dati for ( i = 0; i < obj.length; i++) { var opt = document.createElement('option'); opt.innerHTML = obj[i].ragionesoc; opt.value = obj[i].id_fornitore; sel.appendChild(opt); } document.getElementById("select").style.visibility="visible"; } } xmlhttp.send(); } </script> La parte js si occupa di chiamare la pagina .php, inviando i dati che servono per la query e di ricevere il recordset in formato stringa json. PHP, Ajax-Json e MYSQL
  • 13. Adesso diamo uno sguardo alla pagina .php. PHP, Ajax-Json e MYSQL
  • 14. <?php // variabili di accesso al server e a MySQL $host="172.16.0.24"; //replace with your hostname $username="floris"; //replace with your username $password="xxxxxxxx"; //replace with your password $db_name="floris_energia"; //replace with your database // *********************** // Accesso al DB // *********************** $con=mysqli_connect($host, $username, $password)or die("cannot connect"); mysqli_select_db($con,$db_name) or die ("cannot select DB"); 1/3. Questa parte qui non ha niente di nuovo rispetto a quanto conosciam o. PHP, Ajax-Json e MYSQL
  • 15. // *********************** // QUERY // *********************** $sql = "select * from fornitori"; //replace with your table name $result = mysqli_query($con,$sql); $json = array(); if(mysqli_num_rows($result)){ // Scorro il record set (risultato della query) while($row=mysqli_fetch_object($result)) { // Vecchio metododi visualizzazione // sostituito con il sistema Json //echo "$row[0] - $row[1]"; // Metto nel vettore, alla prima riga libera // il contenuto della riga attuale del recordset $json[]=$row; } } 2/3 In questa parte si crea la query SQL, si invia come sempre ed il risultato viene salvato in un vettore (json). PHP, Ajax-Json e MYSQL
  • 16. // *********************** // Chiudo DB // *********************** mysqli_close($con); // *********************** // Invio la stringa // *********************** echo json_encode($json); ?> 3/3 Si chiude il db e si invia in output il recordset che verrà interpretato dalle funzioni json di javascrit come visto sopra. PHP, Ajax-Json e MYSQL
  • 17. Abbiamo terminato. Il prossimo passo è la realizzazione di APP con accesso a DB. Seguiteci su www.altervista.troppocuriso.org PHP, Ajax-Json e MYSQL