Autore Topic: Da query Mysql a JSON  (Letto 2046 volte)

Offline sgotenks

  • Utente junior
  • **
  • Post: 57
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Geeksphone zero
  • Sistema operativo:
    Windows
Da query Mysql a JSON
« il: 11 Maggio 2011, 01:21:02 CEST »
0
Ciao a  tutti..........sto creando un market android alternativo, x ora ho il db e sto facendo il client android........manca del tutto la parte in mezzo con php e cose varie.

I dati che estraggo dal db cn una query sql li ho parsati in android con JSON, in pratica faccio la query a mano su phpmyadmin, faccio esporta in xml perchè json nn c'è e poi converto l'xml x trovare il json, ci sn tool online che lo fanno ad esempio XML to JSON online
e poi convalido x vedere che sia sintatticamente corretto con questo: JSONLint - The JSON Validator.

Per parsare i dati ho seguito questo utilissimo tutorial: [facile-medio] Importare dati da una sorgente JSON - Android Developers Italia
La prima schermata dell'applicazione che come nel market mi da una lista di tutte le app va......ho interrogato la tabella Applicazione, estatto i campi che mi interessavano, fatto quanto detto sopra e una volta avuto il mio JSON ho usato il tutorial per parsarlo....

Ora ho un problemone, devo fare la stessa cosa ma più difficile. Quando clicco su una applicazione della lista mi deve dare il dettaglio come in adroid market cn 20000 cose, come l'autore, le reviews, le immagini di previews ecc.............segue questi dati sn estratti dal mio db da una query che nn tocca sl una tabella ma tante, cn una super join.

Questa è la query che ho creato:
Codice: [Seleziona]
SELECT `APPLICAZIONE_ID` , `APPLICAZIONE_PREZZO` , `APPLICAZIONE_ICONA_PATH` , `APPLICAZIONE_NOME` , `APPLICAZIONE_DESCRIZIONE` , `APPLICAZIONE_DOWNLOAD_NUM` , `APPLICAZIONE_NUM_VOTI` ,`ID_SVILUPPATORE` ,
       `SVILUPPATORE_NOME` , `SVILUPPATORE_MAIL` , `SVILUPPATORE_WEB_SITE`, `SVILUPPATORE_ID`,
           `IMMAGINE_PATH`, immagine_preview.`ID_APPLICAZIONE`,
           `RATING_DATA` , `RATING_VOTO` , `RATING_DESCRIZIONE` , `ID_UTENTE`, rating.`ID_APPLICAZIONE`,
           `UTENTE_USERID` , `UTENTE_ID`
FROM `applicazione` , `sviluppatore`,`immagine_preview`,`rating`,`utente`
WHERE applicazione.`APPLICAZIONE_ID` =1
      AND applicazione.`ID_SVILUPPATORE` = sviluppatore.`SVILUPPATORE_ID`
      AND applicazione.`APPLICAZIONE_ID` = immagine_preview.`ID_APPLICAZIONE`
          AND applicazione.`APPLICAZIONE_ID` = rating.`ID_APPLICAZIONE`
          AND utente.`UTENTE_ID` = rating.`ID_UTENTE`

Il db è stato parzialmente  riempito a mano in modo da sapere quale sarebbe dovuto esser l'esito della query. Tale query mi da in phpmyadmin 9 risultati, perchè ho 1 app --> 1 autore, quindi x ora una corrispondenza, ma poi l'applicazione ha 3 immagini di previews (relazione 1 a molti) --> son salito a 3 record e poi la mia app ha 3 recensioni (di nuovo 1 a molti e tra l'altro review è un entità debole che è identificata dalla app che recebsisce e da un id che punta a un utente di cui mi serve il nome), quindi 3x3 saliamo a 9.
Mi sembra corretta come logica:

Dalla query esporto l'xml che è il seguente:
Codice (XML): [Seleziona]
<marketmddb>
  <!-- Tabella applicazione -->
    <applicazione>
        <APPLICAZIONE_ID>1</APPLICAZIONE_ID>
        <APPLICAZIONE_PREZZO>4.5</APPLICAZIONE_PREZZO>
        <APPLICAZIONE_ICONA_PATH>D:\EasyPHP5.2.10\www\icone\search1.png</APPLICAZIONE_ICONA_PATH>
        <APPLICAZIONE_NOME>Applicazione1</APPLICAZIONE_NOME>
        <APPLICAZIONE_DESCRIZIONE>La prima app di prova</APPLICAZIONE_DESCRIZIONE>
        <APPLICAZIONE_DOWNLOAD_NUM>10</APPLICAZIONE_DOWNLOAD_NUM>
        <APPLICAZIONE_NUM_VOTI>5</APPLICAZIONE_NUM_VOTI>
        <ID_SVILUPPATORE>1</ID_SVILUPPATORE>
        <SVILUPPATORE_NOME>Luca</SVILUPPATORE_NOME>
        <SVILUPPATORE_MAIL>sviluppatore@mail.com</SVILUPPATORE_MAIL>
        <SVILUPPATORE_WEB_SITE>www.pirla.it</SVILUPPATORE_WEB_SITE>
        <SVILUPPATORE_ID>1</SVILUPPATORE_ID>
        <IMMAGINE_PATH>percorso1</IMMAGINE_PATH>
        <ID_APPLICAZIONE>1</ID_APPLICAZIONE>
        <RATING_DATA>2011-05-10 14:21:32</RATING_DATA>
        <RATING_VOTO>3</RATING_VOTO>
        <RATING_DESCRIZIONE>Questa applicazione funziona come i prodotti della marcuzzi</RATING_DESCRIZIONE>
        <ID_UTENTE>1</ID_UTENTE>
        <ID_APPLICAZIONE>1</ID_APPLICAZIONE>
        <UTENTE_USERID>Luca</UTENTE_USERID>
        <UTENTE_ID>1</UTENTE_ID>
    </applicazione>
    <applicazione>
        <APPLICAZIONE_ID>1</APPLICAZIONE_ID>
        <APPLICAZIONE_PREZZO>4.5</APPLICAZIONE_PREZZO>
        <APPLICAZIONE_ICONA_PATH>D:\EasyPHP5.2.10\www\icone\search1.png</APPLICAZIONE_ICONA_PATH>
        <APPLICAZIONE_NOME>Applicazione1</APPLICAZIONE_NOME>
        <APPLICAZIONE_DESCRIZIONE>La prima app di prova</APPLICAZIONE_DESCRIZIONE>
        <APPLICAZIONE_DOWNLOAD_NUM>10</APPLICAZIONE_DOWNLOAD_NUM>
        <APPLICAZIONE_NUM_VOTI>5</APPLICAZIONE_NUM_VOTI>
        <ID_SVILUPPATORE>1</ID_SVILUPPATORE>
        <SVILUPPATORE_NOME>Luca</SVILUPPATORE_NOME>
        <SVILUPPATORE_MAIL>sviluppatore@mail.com</SVILUPPATORE_MAIL>
        <SVILUPPATORE_WEB_SITE>www.pirla.it</SVILUPPATORE_WEB_SITE>
        <SVILUPPATORE_ID>1</SVILUPPATORE_ID>
        <IMMAGINE_PATH>percorso1</IMMAGINE_PATH>
        <ID_APPLICAZIONE>1</ID_APPLICAZIONE>
        <RATING_DATA>2011-05-09 14:22:30</RATING_DATA>
        <RATING_VOTO>5</RATING_VOTO>
        <RATING_DESCRIZIONE>questa applicazione è stata fatta da un vero genio dell'informatica</RATING_DESCRIZIONE>
        <ID_UTENTE>2</ID_UTENTE>
        <ID_APPLICAZIONE>1</ID_APPLICAZIONE>
        <UTENTE_USERID>Francesco</UTENTE_USERID>
        <UTENTE_ID>2</UTENTE_ID>
    </applicazione>
    <applicazione>
        <APPLICAZIONE_ID>1</APPLICAZIONE_ID>
        <APPLICAZIONE_PREZZO>4.5</APPLICAZIONE_PREZZO>
        <APPLICAZIONE_ICONA_PATH>D:\EasyPHP5.2.10\www\icone\search1.png</APPLICAZIONE_ICONA_PATH>
        <APPLICAZIONE_NOME>Applicazione1</APPLICAZIONE_NOME>
        <APPLICAZIONE_DESCRIZIONE>La prima app di prova</APPLICAZIONE_DESCRIZIONE>
        <APPLICAZIONE_DOWNLOAD_NUM>10</APPLICAZIONE_DOWNLOAD_NUM>
        <APPLICAZIONE_NUM_VOTI>5</APPLICAZIONE_NUM_VOTI>
        <ID_SVILUPPATORE>1</ID_SVILUPPATORE>
        <SVILUPPATORE_NOME>Luca</SVILUPPATORE_NOME>
        <SVILUPPATORE_MAIL>sviluppatore@mail.com</SVILUPPATORE_MAIL>
        <SVILUPPATORE_WEB_SITE>www.pirla.it</SVILUPPATORE_WEB_SITE>
        <SVILUPPATORE_ID>1</SVILUPPATORE_ID>
        <IMMAGINE_PATH>percorso1</IMMAGINE_PATH>
        <ID_APPLICAZIONE>1</ID_APPLICAZIONE>
        <RATING_DATA>2011-05-10 14:23:23</RATING_DATA>
        <RATING_VOTO>1</RATING_VOTO>
        <RATING_DESCRIZIONE>Non ci siamo proprio</RATING_DESCRIZIONE>
        <ID_UTENTE>3</ID_UTENTE>
        <ID_APPLICAZIONE>1</ID_APPLICAZIONE>
        <UTENTE_USERID>Vanessa</UTENTE_USERID>
        <UTENTE_ID>3</UTENTE_ID>
    </applicazione>
    <applicazione>
        <APPLICAZIONE_ID>1</APPLICAZIONE_ID>
        <APPLICAZIONE_PREZZO>4.5</APPLICAZIONE_PREZZO>
        <APPLICAZIONE_ICONA_PATH>D:\EasyPHP5.2.10\www\icone\search1.png</APPLICAZIONE_ICONA_PATH>
        <APPLICAZIONE_NOME>Applicazione1</APPLICAZIONE_NOME>
        <APPLICAZIONE_DESCRIZIONE>La prima app di prova</APPLICAZIONE_DESCRIZIONE>
        <APPLICAZIONE_DOWNLOAD_NUM>10</APPLICAZIONE_DOWNLOAD_NUM>
        <APPLICAZIONE_NUM_VOTI>5</APPLICAZIONE_NUM_VOTI>
        <ID_SVILUPPATORE>1</ID_SVILUPPATORE>
        <SVILUPPATORE_NOME>Luca</SVILUPPATORE_NOME>
        <SVILUPPATORE_MAIL>sviluppatore@mail.com</SVILUPPATORE_MAIL>
        <SVILUPPATORE_WEB_SITE>www.pirla.it</SVILUPPATORE_WEB_SITE>
        <SVILUPPATORE_ID>1</SVILUPPATORE_ID>
        <IMMAGINE_PATH>percorso2</IMMAGINE_PATH>
        <ID_APPLICAZIONE>1</ID_APPLICAZIONE>
        <RATING_DATA>2011-05-10 14:21:32</RATING_DATA>
        <RATING_VOTO>3</RATING_VOTO>
        <RATING_DESCRIZIONE>Questa applicazione funziona come i prodotti della marcuzzi</RATING_DESCRIZIONE>
        <ID_UTENTE>1</ID_UTENTE>
        <ID_APPLICAZIONE>1</ID_APPLICAZIONE>
        <UTENTE_USERID>Luca</UTENTE_USERID>
        <UTENTE_ID>1</UTENTE_ID>
    </applicazione>
    <applicazione>
        <APPLICAZIONE_ID>1</APPLICAZIONE_ID>
        <APPLICAZIONE_PREZZO>4.5</APPLICAZIONE_PREZZO>
        <APPLICAZIONE_ICONA_PATH>D:\EasyPHP5.2.10\www\icone\search1.png</APPLICAZIONE_ICONA_PATH>
        <APPLICAZIONE_NOME>Applicazione1</APPLICAZIONE_NOME>
        <APPLICAZIONE_DESCRIZIONE>La prima app di prova</APPLICAZIONE_DESCRIZIONE>
        <APPLICAZIONE_DOWNLOAD_NUM>10</APPLICAZIONE_DOWNLOAD_NUM>
        <APPLICAZIONE_NUM_VOTI>5</APPLICAZIONE_NUM_VOTI>
        <ID_SVILUPPATORE>1</ID_SVILUPPATORE>
        <SVILUPPATORE_NOME>Luca</SVILUPPATORE_NOME>
        <SVILUPPATORE_MAIL>sviluppatore@mail.com</SVILUPPATORE_MAIL>
        <SVILUPPATORE_WEB_SITE>www.pirla.it</SVILUPPATORE_WEB_SITE>
        <SVILUPPATORE_ID>1</SVILUPPATORE_ID>
        <IMMAGINE_PATH>percorso2</IMMAGINE_PATH>
        <ID_APPLICAZIONE>1</ID_APPLICAZIONE>
        <RATING_DATA>2011-05-09 14:22:30</RATING_DATA>
        <RATING_VOTO>5</RATING_VOTO>
        <RATING_DESCRIZIONE>questa applicazione è stata fatta da un vero genio dell'informatica</RATING_DESCRIZIONE>
        <ID_UTENTE>2</ID_UTENTE>
        <ID_APPLICAZIONE>1</ID_APPLICAZIONE>
        <UTENTE_USERID>Francesco</UTENTE_USERID>
        <UTENTE_ID>2</UTENTE_ID>
    </applicazione>
    <applicazione>
        <APPLICAZIONE_ID>1</APPLICAZIONE_ID>
        <APPLICAZIONE_PREZZO>4.5</APPLICAZIONE_PREZZO>
        <APPLICAZIONE_ICONA_PATH>D:\EasyPHP5.2.10\www\icone\search1.png</APPLICAZIONE_ICONA_PATH>
        <APPLICAZIONE_NOME>Applicazione1</APPLICAZIONE_NOME>
        <APPLICAZIONE_DESCRIZIONE>La prima app di prova</APPLICAZIONE_DESCRIZIONE>
        <APPLICAZIONE_DOWNLOAD_NUM>10</APPLICAZIONE_DOWNLOAD_NUM>
        <APPLICAZIONE_NUM_VOTI>5</APPLICAZIONE_NUM_VOTI>
        <ID_SVILUPPATORE>1</ID_SVILUPPATORE>
        <SVILUPPATORE_NOME>Luca</SVILUPPATORE_NOME>
        <SVILUPPATORE_MAIL>sviluppatore@mail.com</SVILUPPATORE_MAIL>
        <SVILUPPATORE_WEB_SITE>www.pirla.it</SVILUPPATORE_WEB_SITE>
        <SVILUPPATORE_ID>1</SVILUPPATORE_ID>
        <IMMAGINE_PATH>percorso2</IMMAGINE_PATH>
        <ID_APPLICAZIONE>1</ID_APPLICAZIONE>
        <RATING_DATA>2011-05-10 14:23:23</RATING_DATA>
        <RATING_VOTO>1</RATING_VOTO>
        <RATING_DESCRIZIONE>Non ci siamo proprio</RATING_DESCRIZIONE>
        <ID_UTENTE>3</ID_UTENTE>
        <ID_APPLICAZIONE>1</ID_APPLICAZIONE>
        <UTENTE_USERID>Vanessa</UTENTE_USERID>
        <UTENTE_ID>3</UTENTE_ID>
    </applicazione>
    <applicazione>
        <APPLICAZIONE_ID>1</APPLICAZIONE_ID>
        <APPLICAZIONE_PREZZO>4.5</APPLICAZIONE_PREZZO>
        <APPLICAZIONE_ICONA_PATH>D:\EasyPHP5.2.10\www\icone\search1.png</APPLICAZIONE_ICONA_PATH>
        <APPLICAZIONE_NOME>Applicazione1</APPLICAZIONE_NOME>
        <APPLICAZIONE_DESCRIZIONE>La prima app di prova</APPLICAZIONE_DESCRIZIONE>
        <APPLICAZIONE_DOWNLOAD_NUM>10</APPLICAZIONE_DOWNLOAD_NUM>
        <APPLICAZIONE_NUM_VOTI>5</APPLICAZIONE_NUM_VOTI>
        <ID_SVILUPPATORE>1</ID_SVILUPPATORE>
        <SVILUPPATORE_NOME>Luca</SVILUPPATORE_NOME>
        <SVILUPPATORE_MAIL>sviluppatore@mail.com</SVILUPPATORE_MAIL>
        <SVILUPPATORE_WEB_SITE>www.pirla.it</SVILUPPATORE_WEB_SITE>
        <SVILUPPATORE_ID>1</SVILUPPATORE_ID>
        <IMMAGINE_PATH>percorso3</IMMAGINE_PATH>
        <ID_APPLICAZIONE>1</ID_APPLICAZIONE>
        <RATING_DATA>2011-05-10 14:21:32</RATING_DATA>
        <RATING_VOTO>3</RATING_VOTO>
        <RATING_DESCRIZIONE>Questa applicazione funziona come i prodotti della marcuzzi</RATING_DESCRIZIONE>
        <ID_UTENTE>1</ID_UTENTE>
        <ID_APPLICAZIONE>1</ID_APPLICAZIONE>
        <UTENTE_USERID>Luca</UTENTE_USERID>
        <UTENTE_ID>1</UTENTE_ID>
    </applicazione>
    <applicazione>
        <APPLICAZIONE_ID>1</APPLICAZIONE_ID>
        <APPLICAZIONE_PREZZO>4.5</APPLICAZIONE_PREZZO>
        <APPLICAZIONE_ICONA_PATH>D:\EasyPHP5.2.10\www\icone\search1.png</APPLICAZIONE_ICONA_PATH>
        <APPLICAZIONE_NOME>Applicazione1</APPLICAZIONE_NOME>
        <APPLICAZIONE_DESCRIZIONE>La prima app di prova</APPLICAZIONE_DESCRIZIONE>
        <APPLICAZIONE_DOWNLOAD_NUM>10</APPLICAZIONE_DOWNLOAD_NUM>
        <APPLICAZIONE_NUM_VOTI>5</APPLICAZIONE_NUM_VOTI>
        <ID_SVILUPPATORE>1</ID_SVILUPPATORE>
        <SVILUPPATORE_NOME>Luca</SVILUPPATORE_NOME>
        <SVILUPPATORE_MAIL>sviluppatore@mail.com</SVILUPPATORE_MAIL>
        <SVILUPPATORE_WEB_SITE>www.pirla.it</SVILUPPATORE_WEB_SITE>
        <SVILUPPATORE_ID>1</SVILUPPATORE_ID>
        <IMMAGINE_PATH>percorso3</IMMAGINE_PATH>
        <ID_APPLICAZIONE>1</ID_APPLICAZIONE>
        <RATING_DATA>2011-05-09 14:22:30</RATING_DATA>
        <RATING_VOTO>5</RATING_VOTO>
        <RATING_DESCRIZIONE>questa applicazione è stata fatta da un vero genio dell'informatica</RATING_DESCRIZIONE>
        <ID_UTENTE>2</ID_UTENTE>
        <ID_APPLICAZIONE>1</ID_APPLICAZIONE>
        <UTENTE_USERID>Francesco</UTENTE_USERID>
        <UTENTE_ID>2</UTENTE_ID>
    </applicazione>
    <applicazione>
        <APPLICAZIONE_ID>1</APPLICAZIONE_ID>
        <APPLICAZIONE_PREZZO>4.5</APPLICAZIONE_PREZZO>
        <APPLICAZIONE_ICONA_PATH>D:\EasyPHP5.2.10\www\icone\search1.png</APPLICAZIONE_ICONA_PATH>
        <APPLICAZIONE_NOME>Applicazione1</APPLICAZIONE_NOME>
        <APPLICAZIONE_DESCRIZIONE>La prima app di prova</APPLICAZIONE_DESCRIZIONE>
        <APPLICAZIONE_DOWNLOAD_NUM>10</APPLICAZIONE_DOWNLOAD_NUM>
        <APPLICAZIONE_NUM_VOTI>5</APPLICAZIONE_NUM_VOTI>
        <ID_SVILUPPATORE>1</ID_SVILUPPATORE>
        <SVILUPPATORE_NOME>Luca</SVILUPPATORE_NOME>
        <SVILUPPATORE_MAIL>sviluppatore@mail.com</SVILUPPATORE_MAIL>
        <SVILUPPATORE_WEB_SITE>www.pirla.it</SVILUPPATORE_WEB_SITE>
        <SVILUPPATORE_ID>1</SVILUPPATORE_ID>
        <IMMAGINE_PATH>percorso3</IMMAGINE_PATH>
        <ID_APPLICAZIONE>1</ID_APPLICAZIONE>
        <RATING_DATA>2011-05-10 14:23:23</RATING_DATA>
        <RATING_VOTO>1</RATING_VOTO>
        <RATING_DESCRIZIONE>Non ci siamo proprio</RATING_DESCRIZIONE>
        <ID_UTENTE>3</ID_UTENTE>
        <ID_APPLICAZIONE>1</ID_APPLICAZIONE>
        <UTENTE_USERID>Vanessa</UTENTE_USERID>
        <UTENTE_ID>3</UTENTE_ID>
    </applicazione>
</marketmddb>

Come vedete c'è una rdondanza pazzesca xchè sembra che abbia 9 app, ma in verotà è una sola, le info sull'app e sullo sviluppatore si ripeton ogni volta xchè vengon combinate cn quelle dell immagini di preview e delle reviews.

Da tale xml esce questo JSON:

Codice: [Seleziona]
{
        "marketmddb":
        {
                "applicazione":
                [
                        {
                                "APPLICAZIONE_ID":"1",
                                "APPLICAZIONE_PREZZO":"4.5",
                                "APPLICAZIONE_ICONA_PATH":"D:\\EasyPHP5.2.10\\www\\icone\\search1.png",
                                "APPLICAZIONE_NOME":"Applicazione1",
                                "APPLICAZIONE_DESCRIZIONE":"La prima app di prova",
                                "APPLICAZIONE_DOWNLOAD_NUM":"10",
                                "APPLICAZIONE_NUM_VOTI":"5",
                                "ID_SVILUPPATORE":"1",
                                "SVILUPPATORE_NOME":"Luca",
                                "SVILUPPATORE_MAIL":"sviluppatore@mail.com",
                                "SVILUPPATORE_WEB_SITE":"www.pirla.it",
                                "SVILUPPATORE_ID":"1",
                                "IMMAGINE_PATH":"percorso1",
                                "ID_APPLICAZIONE":["1","1"],
                                "RATING_DATA":"2011-05-10 14:21:32",
                                "RATING_VOTO":"3",
                                "RATING_DESCRIZIONE":"Questa applicazione funziona come i prodotti della marcuzzi",
                                "ID_UTENTE":"1",
                                "UTENTE_USERID":"Luca",
                                "UTENTE_ID":"1"
                        },
                        {
                                "APPLICAZIONE_ID":"1",
                                "APPLICAZIONE_PREZZO":"4.5",
                                "APPLICAZIONE_ICONA_PATH":"D:\\EasyPHP5.2.10\\www\\icone\\search1.png",
                                "APPLICAZIONE_NOME":"Applicazione1",
                                "APPLICAZIONE_DESCRIZIONE":"La prima app di prova",
                                "APPLICAZIONE_DOWNLOAD_NUM":"10",
                                "APPLICAZIONE_NUM_VOTI":"5",
                                "ID_SVILUPPATORE":"1",
                                "SVILUPPATORE_NOME":"Luca",
                                "SVILUPPATORE_MAIL":"sviluppatore@mail.com",
                                "SVILUPPATORE_WEB_SITE":"www.pirla.it",
                                "SVILUPPATORE_ID":"1",
                                "IMMAGINE_PATH":"percorso1",
                                "ID_APPLICAZIONE":["1","1"],
                                "RATING_DATA":"2011-05-09 14:22:30",
                                "RATING_VOTO":"5",
                                "RATING_DESCRIZIONE":"questa applicazione \u00e8 stata fatta da un vero genio dell'informatica",
                                "ID_UTENTE":"2",
                                "UTENTE_USERID":"Francesco",
                                "UTENTE_ID":"2"
                        },
                        {
                                "APPLICAZIONE_ID":"1",
                                "APPLICAZIONE_PREZZO":"4.5",
                                "APPLICAZIONE_ICONA_PATH":"D:\\EasyPHP5.2.10\\www\\icone\\search1.png",
                                "APPLICAZIONE_NOME":"Applicazione1",
                                "APPLICAZIONE_DESCRIZIONE":"La prima app di prova",
                                "APPLICAZIONE_DOWNLOAD_NUM":"10",
                                "APPLICAZIONE_NUM_VOTI":"5",
                                "ID_SVILUPPATORE":"1",
                                "SVILUPPATORE_NOME":"Luca",
                                "SVILUPPATORE_MAIL":"sviluppatore@mail.com",
                                "SVILUPPATORE_WEB_SITE":"www.pirla.it",
                                "SVILUPPATORE_ID":"1",
                                "IMMAGINE_PATH":"percorso1",
                                "ID_APPLICAZIONE":["1","1"],
                                "RATING_DATA":"2011-05-10 14:23:23",
                                "RATING_VOTO":"1",
                                "RATING_DESCRIZIONE":"Non ci siamo proprio",
                                "ID_UTENTE":"3",
                                "UTENTE_USERID":"Vanessa",
                                "UTENTE_ID":"3"
                        },
                        {
                                "APPLICAZIONE_ID":"1",
                                "APPLICAZIONE_PREZZO":"4.5",
                                "APPLICAZIONE_ICONA_PATH":"D:\\EasyPHP5.2.10\\www\\icone\\search1.png",
                                "APPLICAZIONE_NOME":"Applicazione1",
                                "APPLICAZIONE_DESCRIZIONE":"La prima app di prova",
                                "APPLICAZIONE_DOWNLOAD_NUM":"10",
                                "APPLICAZIONE_NUM_VOTI":"5",
                                "ID_SVILUPPATORE":"1",
                                "SVILUPPATORE_NOME":"Luca",
                                "SVILUPPATORE_MAIL":"sviluppatore@mail.com",
                                "SVILUPPATORE_WEB_SITE":"www.pirla.it",
                                "SVILUPPATORE_ID":"1",
                                "IMMAGINE_PATH":"percorso2",
                                "ID_APPLICAZIONE":["1","1"],
                                "RATING_DATA":"2011-05-10 14:21:32",
                                "RATING_VOTO":"3",
                                "RATING_DESCRIZIONE":"Questa applicazione funziona come i prodotti della marcuzzi",
                                "ID_UTENTE":"1",
                                "UTENTE_USERID":"Luca",
                                "UTENTE_ID":"1"
                        },
                        {
                                "APPLICAZIONE_ID":"1",
                                "APPLICAZIONE_PREZZO":"4.5",
                                "APPLICAZIONE_ICONA_PATH":"D:\\EasyPHP5.2.10\\www\\icone\\search1.png",
                                "APPLICAZIONE_NOME":"Applicazione1",
                                "APPLICAZIONE_DESCRIZIONE":"La prima app di prova",
                                "APPLICAZIONE_DOWNLOAD_NUM":"10",
                                "APPLICAZIONE_NUM_VOTI":"5",
                                "ID_SVILUPPATORE":"1",
                                "SVILUPPATORE_NOME":"Luca",
                                "SVILUPPATORE_MAIL":"sviluppatore@mail.com",
                                "SVILUPPATORE_WEB_SITE":"www.pirla.it",
                                "SVILUPPATORE_ID":"1",
                                "IMMAGINE_PATH":"percorso2",
                                "ID_APPLICAZIONE":["1","1"],
                                "RATING_DATA":"2011-05-09 14:22:30",
                                "RATING_VOTO":"5",
                                "RATING_DESCRIZIONE":"questa applicazione \u00e8 stata fatta da un vero genio dell'informatica",
                                "ID_UTENTE":"2",
                                "UTENTE_USERID":"Francesco",
                                "UTENTE_ID":"2"
                        },
                        {
                                "APPLICAZIONE_ID":"1",
                                "APPLICAZIONE_PREZZO":"4.5",
                                "APPLICAZIONE_ICONA_PATH":"D:\\EasyPHP5.2.10\\www\\icone\\search1.png",
                                "APPLICAZIONE_NOME":"Applicazione1",
                                "APPLICAZIONE_DESCRIZIONE":"La prima app di prova",
                                "APPLICAZIONE_DOWNLOAD_NUM":"10",
                                "APPLICAZIONE_NUM_VOTI":"5",
                                "ID_SVILUPPATORE":"1",
                                "SVILUPPATORE_NOME":"Luca",
                                "SVILUPPATORE_MAIL":"sviluppatore@mail.com",
                                "SVILUPPATORE_WEB_SITE":"www.pirla.it",
                                "SVILUPPATORE_ID":"1",
                                "IMMAGINE_PATH":"percorso2",
                                "ID_APPLICAZIONE":["1","1"],
                                "RATING_DATA":"2011-05-10 14:23:23",
                                "RATING_VOTO":"1",
                                "RATING_DESCRIZIONE":"Non ci siamo proprio",
                                "ID_UTENTE":"3",
                                "UTENTE_USERID":"Vanessa",
                                "UTENTE_ID":"3"
                        },
                        {
                                "APPLICAZIONE_ID":"1",
                                "APPLICAZIONE_PREZZO":"4.5",
                                "APPLICAZIONE_ICONA_PATH":"D:\\EasyPHP5.2.10\\www\\icone\\search1.png",
                                "APPLICAZIONE_NOME":"Applicazione1",
                                "APPLICAZIONE_DESCRIZIONE":"La prima app di prova",
                                "APPLICAZIONE_DOWNLOAD_NUM":"10",
                                "APPLICAZIONE_NUM_VOTI":"5",
                                "ID_SVILUPPATORE":"1",
                                "SVILUPPATORE_NOME":"Luca",
                                "SVILUPPATORE_MAIL":"sviluppatore@mail.com",
                                "SVILUPPATORE_WEB_SITE":"www.pirla.it",
                                "SVILUPPATORE_ID":"1",
                                "IMMAGINE_PATH":"percorso3",
                                "ID_APPLICAZIONE":["1","1"],
                                "RATING_DATA":"2011-05-10 14:21:32",
                                "RATING_VOTO":"3",
                                "RATING_DESCRIZIONE":"Questa applicazione funziona come i prodotti della marcuzzi",
                                "ID_UTENTE":"1",
                                "UTENTE_USERID":"Luca",
                                "UTENTE_ID":"1"
                        },
                        {
                                "APPLICAZIONE_ID":"1",
                                "APPLICAZIONE_PREZZO":"4.5",
                                "APPLICAZIONE_ICONA_PATH":"D:\\EasyPHP5.2.10\\www\\icone\\search1.png",
                                "APPLICAZIONE_NOME":"Applicazione1",
                                "APPLICAZIONE_DESCRIZIONE":"La prima app di prova",
                                "APPLICAZIONE_DOWNLOAD_NUM":"10",
                                "APPLICAZIONE_NUM_VOTI":"5",
                                "ID_SVILUPPATORE":"1",
                                "SVILUPPATORE_NOME":"Luca",
                                "SVILUPPATORE_MAIL":"sviluppatore@mail.com",
                                "SVILUPPATORE_WEB_SITE":"www.pirla.it",
                                "SVILUPPATORE_ID":"1",
                                "IMMAGINE_PATH":"percorso3",
                                "ID_APPLICAZIONE":["1","1"],
                                "RATING_DATA":"2011-05-09 14:22:30",
                                "RATING_VOTO":"5",
                                "RATING_DESCRIZIONE":"questa applicazione \u00e8 stata fatta da un vero genio dell'informatica",
                                "ID_UTENTE":"2",
                                "UTENTE_USERID":"Francesco",
                                "UTENTE_ID":"2"
                        },
                        {
                                "APPLICAZIONE_ID":"1",
                                "APPLICAZIONE_PREZZO":"4.5",
                                "APPLICAZIONE_ICONA_PATH":"D:\\EasyPHP5.2.10\\www\\icone\\search1.png",
                                "APPLICAZIONE_NOME":"Applicazione1",
                                "APPLICAZIONE_DESCRIZIONE":"La prima app di prova",
                                "APPLICAZIONE_DOWNLOAD_NUM":"10",
                                "APPLICAZIONE_NUM_VOTI":"5",
                                "ID_SVILUPPATORE":"1",
                                "SVILUPPATORE_NOME":"Luca",
                                "SVILUPPATORE_MAIL":"sviluppatore@mail.com",
                                "SVILUPPATORE_WEB_SITE":"www.pirla.it",
                                "SVILUPPATORE_ID":"1",
                                "IMMAGINE_PATH":"percorso3",
                                "ID_APPLICAZIONE":["1","1"],
                                "RATING_DATA":"2011-05-10 14:23:23",
                                "RATING_VOTO":"1",
                                "RATING_DESCRIZIONE":"Non ci siamo proprio",
                                "ID_UTENTE":"3",
                                "UTENTE_USERID":"Vanessa",
                                "UTENTE_ID":"3"
                        }
                ]
        }
}

Non so che farmene, parsarlo cn quanto scritto nel tutoria è un casino xchè sembra che io abbia un array di applicazioni ma nn è vero io sto estraendo tutti i dati che mi servon x una sl applicazione che però ha al contorno molte cose..............io vorrei invece che l'xml risultante dalla query desse questo:
Codice (XML): [Seleziona]
<marketmddb>
  <!-- Tabella applicazione -->
    <applicazione>
        <APPLICAZIONE_ID>1</APPLICAZIONE_ID>
        <APPLICAZIONE_PREZZO>4.5</APPLICAZIONE_PREZZO>
        <APPLICAZIONE_ICONA_PATH>D:\EasyPHP5.2.10\www\icone\search1.png</APPLICAZIONE_ICONA_PATH>
        <APPLICAZIONE_NOME>Applicazione1</APPLICAZIONE_NOME>
        <APPLICAZIONE_DESCRIZIONE>La prima app di prova</APPLICAZIONE_DESCRIZIONE>
        <APPLICAZIONE_DOWNLOAD_NUM>10</APPLICAZIONE_DOWNLOAD_NUM>
        <APPLICAZIONE_NUM_VOTI>5</APPLICAZIONE_NUM_VOTI>
        <ID_SVILUPPATORE>1</ID_SVILUPPATORE>
                <sviluppatore>
                        <SVILUPPATORE_NOME>Luca</SVILUPPATORE_NOME>
                        <SVILUPPATORE_MAIL>sviluppatore@mail.com</SVILUPPATORE_MAIL>
                        <SVILUPPATORE_WEB_SITE>www.pirla.it</SVILUPPATORE_WEB_SITE>
                        <SVILUPPATORE_ID>1</SVILUPPATORE_ID>
                </sviluppatore>
               
               
                <immagini>
                        <immagine_preview>
                                        <IMMAGINE_PATH>percorso1</IMMAGINE_PATH>
                                        <ID_APPLICAZIONE>1</ID_APPLICAZIONE>
                        </immagine_preview>
                        <immagine_preview>
                                        <IMMAGINE_PATH>percorso2</IMMAGINE_PATH>
                                        <ID_APPLICAZIONE>1</ID_APPLICAZIONE>
                        </immagine_preview>
                        <immagine_preview>
                                        <IMMAGINE_PATH>percorso3</IMMAGINE_PATH>
                                        <ID_APPLICAZIONE>1</ID_APPLICAZIONE>
                        </immagine_preview>
                </immagini>
       
                <ratings>
                        <rating>
                                <RATING_DATA>2011-05-10 14:21:32</RATING_DATA>
                                <RATING_VOTO>3</RATING_VOTO>
                                <RATING_DESCRIZIONE>Questa applicazione funziona come i prodotti della marcuzzi</RATING_DESCRIZIONE>
                                <ID_UTENTE>1</ID_UTENTE>
                                <ID_APPLICAZIONE>1</ID_APPLICAZIONE>
                                <utente>
                                        <UTENTE_USERID>Vanessa</UTENTE_USERID>
                                        <UTENTE_ID>1</UTENTE_ID>
                                </utente>
                        </rating>
                        <rating>
                                <RATING_DATA>2011-05-09 14:22:30</RATING_DATA>
                                <RATING_VOTO>5</RATING_VOTO>
                                <RATING_DESCRIZIONE>questa applicazione è stata fatta da un vero genio dell'informatica</RATING_DESCRIZIONE>
                                <ID_UTENTE>2</ID_UTENTE>
                                <ID_APPLICAZIONE>1</ID_APPLICAZIONE>
                                <utente>
                                        <UTENTE_USERID>Francesco</UTENTE_USERID>
                                        <UTENTE_ID>1</UTENTE_ID>
                                </utente>
                        </rating>
                        <rating>
                                <RATING_DATA>2011-05-10 14:23:23</RATING_DATA>
                                <RATING_VOTO>1</RATING_VOTO>
                                <RATING_DESCRIZIONE>Non ci siamo proprio</RATING_DESCRIZIONE>
                                <ID_UTENTE>3</ID_UTENTE>
                                <ID_APPLICAZIONE>1</ID_APPLICAZIONE>
                                <utente>
                                        <UTENTE_USERID>Luca</UTENTE_USERID>
                                        <UTENTE_ID>1</UTENTE_ID>
                                </utente>
                        </rating>
                </ratings>
    </applicazione>
</marketmddb>

che tradotto in json viene:

Codice: [Seleziona]
{
        "marketmddb":
        {
                "applicazione":
                {
                        "APPLICAZIONE_ID":"1",
                        "APPLICAZIONE_PREZZO":"4.5",
                        "APPLICAZIONE_ICONA_PATH":"D:\\EasyPHP5.2.10\\www\\icone\\search1.png",
                        "APPLICAZIONE_NOME":"Applicazione1",
                        "APPLICAZIONE_DESCRIZIONE":"La prima app di prova",
                        "APPLICAZIONE_DOWNLOAD_NUM":"10",
                        "APPLICAZIONE_NUM_VOTI":"5",
                        "ID_SVILUPPATORE":"1",
                        "sviluppatore":
                        {
                                "SVILUPPATORE_NOME":"Luca",
                                "SVILUPPATORE_MAIL":"sviluppatore@mail.com",
                                "SVILUPPATORE_WEB_SITE":"www.pirla.it",
                                "SVILUPPATORE_ID":"1"
                        },
                        "immagini":
                        {
                                "immagine_preview":
                                [
                                        {
                                                "IMMAGINE_PATH":"percorso1",
                                                "ID_APPLICAZIONE":"1"
                                        },
                                        {
                                                "IMMAGINE_PATH":"percorso2",
                                                "ID_APPLICAZIONE":"1"
                                        },
                                        {
                                                "IMMAGINE_PATH":"percorso3",
                                                "ID_APPLICAZIONE":"1"
                                        }
                                ]
                        },
                        "ratings":
                        {
                                "rating":
                                [
                                        {
                                                "RATING_DATA":"2011-05-10 14:21:32",
                                                "RATING_VOTO":"3",
                                                "RATING_DESCRIZIONE":"Questa applicazione funziona come i prodotti della marcuzzi",
                                                "ID_UTENTE":"1",
                                                "ID_APPLICAZIONE":"1",
                                                "utente":
                                                {
                                                        "UTENTE_USERID":"Vanessa",
                                                        "UTENTE_ID":"1"
                                                }
                                        },
                                        {
                                                "RATING_DATA":"2011-05-09 14:22:30",
                                                "RATING_VOTO":"5",
                                                "RATING_DESCRIZIONE":"questa applicazione \u00e8 stata fatta da un vero genio dell'informatica",
                                                "ID_UTENTE":"2",
                                                "ID_APPLICAZIONE":"1",
                                                "utente":
                                                {
                                                        "UTENTE_USERID":"Francesco",
                                                        "UTENTE_ID":"1"
                                                }
                                        },
                                        {
                                                "RATING_DATA":"2011-05-10 14:23:23",
                                                "RATING_VOTO":"1",
                                                "RATING_DESCRIZIONE":"Non ci siamo proprio",
                                                "ID_UTENTE":"3",
                                                "ID_APPLICAZIONE":"1",
                                                "utente":
                                                {
                                                        "UTENTE_USERID":"Luca",
                                                        "UTENTE_ID":"1"
                                                }
                                        }
                                ]
                        }
                }
        }
}

molto più corto e facilemente parsabile con quanto scritto nel tutorial, perchè ho una applicazione come è vero in base al db, che ha al duo interno un oggetto sviluppatore, un array di reviews cn ogni elemento che dice anche chi è l'autore, e un array di immagini .

Seguendo il tutorial mi creo la classe applicazione, sviluppatore, review e preview secondo logica e in 2 secondi parso il file che c'è sopra.

A questo punto la mia domanda vera:

1)Come posso modificare la mia query iniziale affinche ritorni un risultato che tradotto inxml sia quello da me voluto, e quindi lo sia anche il json in cui verrà mappato? In realtà dell'xml me ne frega poco è sl che per ora nn ho trovato un modo x passare diretto da query su mysql a json.......qualche groupby o cose simili.....

2)Cosa dovrei usare poi dopo quando avrò php x tradurre realmente il risultato della query in json?Intendo librerie, script ecc che faccian sta cosa in automatico.


Grazie e so che il quesito è lungo e forse nn molto chiaro specie x chi magari nn ha letto il tutorial e come parsa.
« Ultima modifica: 11 Maggio 2011, 01:25:54 CEST da sgotenks »

Offline elegos

  • Nuovo arrivato
  • *
  • Post: 44
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus One
  • Play Store ID:
    Giacomo Furlan
  • Sistema operativo:
    Mac OS X
Re:Da query Mysql a JSON
« Risposta #1 il: 11 Maggio 2011, 08:34:56 CEST »
0
Se l'applicazione è una sola, mi spieghi perché crei anche l'oggetto "marketmddb"?

Offline sgotenks

  • Utente junior
  • **
  • Post: 57
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Geeksphone zero
  • Sistema operativo:
    Windows
Re:Da query Mysql a JSON
« Risposta #2 il: 11 Maggio 2011, 08:46:14 CEST »
0
Quello è il nome del DB, lo sparaa fuori mysql nella schermata di esporta in automatico, e nelle varie traduzioni l'ho lasciato li.......al max fa da radice inutile, ma lo levo facile....penso :)

Poi l'applicazione x ora è una sola, quindi quando ne aggiungerò altre una rappresentazione del db è giusto che dia più pp, ma in questo caso è sempre la stessa, anche perchè arrrivando dal click su un elemento di una lista di app ho fissato Applicazione_id = 1
« Ultima modifica: 11 Maggio 2011, 08:48:59 CEST da sgotenks »

Offline elegos

  • Nuovo arrivato
  • *
  • Post: 44
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus One
  • Play Store ID:
    Giacomo Furlan
  • Sistema operativo:
    Mac OS X
Re:Da query Mysql a JSON
« Risposta #3 il: 11 Maggio 2011, 09:13:28 CEST »
0
Beh ma allora credo tu ti stia perdendo in un bicchier d'acqua. Una volta create le classi è molto semplice utilizzare GSON, perché, alla fine, avrai solo un mega-oggetto contenente dei generici oggetti che avranno dei metodi.

In ogni caso io tradurrei direttamente da MySQL in JSON, senza passare da XML.
« Ultima modifica: 11 Maggio 2011, 09:15:02 CEST da elegos »

Offline sgotenks

  • Utente junior
  • **
  • Post: 57
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Geeksphone zero
  • Sistema operativo:
    Windows
Re:Da query Mysql a JSON
« Risposta #4 il: 11 Maggio 2011, 09:27:00 CEST »
0
No ma infatti io voglio andare direttameente da mysql a json ed è quello che cercherò di fare nn appena avrò php nel mezzo che lo fa (devo però leggermi bene cme funziona php e se ci sono classi che tiran fuori il json come voglio io), il passaggio querysql-->xml-->json lo faccio sl ora xchè grazie ai tool sopra citati   posso farlo in automatiico senza sapere niente di php e di javascript.

Il mio problema è che se la traduzione mysql to json da lo stesso risultato di quella mysql to xml to json allora il json che otterrò con la quey sopra citata sarà quella cosa bruttissima postata all'inizio he nn riuscirei a parsare.........se mi dite che quello estratto direttamente sarà il json come lo voglio io allora a posto, quello lo parso facile......... altrimenti devo modificare la queery o provare qualcosa

Offline elegos

  • Nuovo arrivato
  • *
  • Post: 44
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus One
  • Play Store ID:
    Giacomo Furlan
  • Sistema operativo:
    Mac OS X
Re:Da query Mysql a JSON
« Risposta #5 il: 11 Maggio 2011, 09:36:53 CEST »
0
Con PHP puoi fare qualsiasi cosa, non ci sono problemi di sorta :)

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Da query Mysql a JSON
« Risposta #6 il: 11 Maggio 2011, 10:07:57 CEST »
0
Rispondendo al tuo primo post, in merito al fatto che sembra che l'utente abbia 9 app, sarebbe bene che tu raffinassi la tua query, utilizzando funzioni di aggregazione in modo da non andare sempre a moltiplicare il numero di risultati.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline sgotenks

  • Utente junior
  • **
  • Post: 57
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Geeksphone zero
  • Sistema operativo:
    Windows
Re:Da query Mysql a JSON
« Risposta #7 il: 11 Maggio 2011, 10:53:26 CEST »
0
Funzioni di aggregazione??? Mi piace, ma cosa sinifica :)

Tipo GroupBy? (nn penso che aiuti più fi tanto anche xchè va abbinata a sum o quache altra funzion raggruppnte che nn consoco) O funzioni complesse? Link x neofiti?

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Da query Mysql a JSON
« Risposta #8 il: 11 Maggio 2011, 11:02:20 CEST »
0
bravissimo, tipo groupby.
per esempio potresti usare group_concat per farti ritornare, su uno stesso campo, i valori di diverse colonne, in modo da avere un campo con 9 valori senza avere nome copie che variano solo per quel campo.
Eccoti un esempio.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline sgotenks

  • Utente junior
  • **
  • Post: 57
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Geeksphone zero
  • Sistema operativo:
    Windows
Re:Da query Mysql a JSON
« Risposta #9 il: 11 Maggio 2011, 11:53:38 CEST »
0
Se ragruppo ad esempio x APPLICAZIONE_ID mi ritorna 1 unica riga, il problema però è che in quest'unica riga ci sn i dati di 1 immagine e di 1 solo rating, gli altri li ho persi........

Mi sa che la coa migliore è spezzettare la query iniziale in tante sotto query, una x i dati dell'app, una x quelli dello sviluppatore, una x i rating che mi darà e risultati e una x le immagini che mi darà altri 3 risultati e poi con i risultati di queste query  jsonizzati vado a comporre il json finale come lo voglio io.......mi sa che in un'unica query è davvero impossibile........salvo che nn ci sia uno script php che dal risultato della mega queryy sia abbastanza intelligente da capire come va strutturato i json in maniera furba