MICHELEPISANI.IT
 

Per l'interscambio di dati tra il server e l'app

Convertire il risultato di una query in JSON con PHP

Aprile 05
07:232016

Per poter rendere le applicazioni dinamiche è necessario che esse dialoghino con un server remoto dal quale recuperare, tramite query ad un database, le informazioni richieste.
Nasce spontanea l'esigenza di dover leggere il risultato PHP dalla nostra applicazione che, non interpretando direttamente tale linguaggio server side, ha bisogno che tale risultato venga precedentemente convertito in un formato adatto all'interscambio di dati, ed ecco che entra in gioco il JSON (non scendo in spiegazioni su questo formato, basti pensare che per quanto ci interessa è rappresentato da un oggetto o array al cui interno esistono una serie di array associativi racchiusi tra parentesi graffe e separati da virgola che a sua volta contengono coppie chiave-valore), un esempio è il seguente:

[{"id":"1","nome":"Mario","cognome":"Rossi","anni":"37"},{"id":"2","nome":"Giuseppe","cognome":"Verdi","anni":"85"},{"id":"3","nome":"Tizio","cognome":"Incognito","anni":"50"}]


Per ottenere tale struttura tramite PHP, dopo aver eseguito la query di nostro interesse, è necessario convertire in primo luogo il recordset in un array e successivamente tramite la funzione json_encode generare la stringa json.
Di seguito i passaggi:

Recupero dei dati da query (a titolo esemplificativo inserisco una semplice query tralasciando tutto ciò che serve per il suo specifico funzionamento, ossia creazione del database, creazione della tabella, popolamento dati e connessione al db, che esulano dallo scopo di questo articolo):

<?php
    $sql = "select nome,cognome,anni from tabella_dipendenti";
    $result = mysqli_query($mia_connessione, $sql);
?>


Conversione del recordset in un array:

<?php
    $mio_array = array();
    while($row = mysqli_fetch_assoc($result)) {
        $mio_array[] = $row;
    }
?>


Conversione dell'array da PHP a JSON:

<?php 
    echo json_encode($mio_array);
?>


Ed se il risultato a video sarà una struttura simile a quella evidenziata a inizio articolo potrete recuperarla tramite la vostra app ed elaborare i dati di conseguenza.

Tags
Condividi

Autore

Michele Pisani

Michele Pisani

Ho uno spiccato orientamento al problem-solving, se è troppo facile non mi diverto :)
Credo nella volontà e nel cambiamento perchè hanno fatto della mia passione il mio pane quotidiano.
Se devo descrivermi con una sola parola direi... "Concretezza", la mia stretta di mano è una garanzia.

6 Commenti

  1. Edoardo venerdì 7 ottobre 2016 alle ore 14.03

    Sorry, only one question, how can i pass JSON array at my ionic app? Thank's

    Rispondi a questo commento
    • Michele PisaniAutore venerdì 7 ottobre 2016 alle ore 14.13

      Hi Edoardo,
      from the app just you make a http request to the page that generates json.

      Rispondi a questo commento
      • Edoardo venerdì 7 ottobre 2016 alle ore 16.12

        Thank's and which parameters must i pass in the http request? Thank's

      • Michele PisaniAutore venerdì 7 ottobre 2016 alle ore 18.48

        This depends on the parameters that your PHP page needs to receive to give you back the JSON.
        Similarly to call from another web page or a form...

  2. domenico mercoledì 20 settembre 2017 alle ore 18.29

    ciao, puoi aiutarmi?

    ho creato un form che tramite una chiamata mi restituisce una stringa

    {
    "PageSize": 10,
    "PageNumber": 0,
    "PageCount": 1,
    "ItemsCount": 1,
    "Result": [{
    "CodShop": 1,
    "NumRepair": 50129,
    "CodCustomer": 6240,
    "Surname": "D'xxx",
    "Name": "xxx",
    "Phone": "xxx",
    "Mobile": "xxx",
    "RepairType": 2,
    "WorkType": 1,
    "RepairState": 1,
    "TakeOverDate": "2016-11-30T00:00:00",
    "Object": 36,
    "GramsPieces": 1.00,
    "ObjectDescription": "COLTELLO CLIENTE",
    "ToDo": "PREV PER SOSTITUIRE LA LAMA",
    "PendingPayment": 0.0000,
    "AgreedPrice": 0.0000,
    "RepairCost": 0.0000,
    "RepairPrice": 0.0000,
    "AppliedPrice": 0.0000,
    "CodRepairer": 17,
    "ToPrintDdT": false,
    "PrintedDdT": false,
    "NumDdtRepairer": "0",
    "WithdrawalWith": 0,
    "NumFiscalReceipe": 0,
    "QuoteState": 3,
    "QuoteAnswer": 1,
    "QuoteCost": 40.0000,
    "QuotePrice": 80.0000,
    "QuoteNote": "80.00 CAD PER SOSTITUIRE LAME E ARGENTARE",
    "DateComunRepairer": "2017-03-15T00:00:00",
    "DateComunCustomer": "2017-03-15T00:00:00",
    "PrintNote": false,
    "NoteNumber": 0,
    "TakenUser": "admin",
    "SendSms": true,
    "SendEmail": true,
    "IsMasterRepair": false,
    "DeclaredValue": 0.0000,
    "ValueOfInsured": false,
    "PressForQuestura": false,
    "CodVAT": 3,
    "PearlsOfPearlsNum": 0,
    "ReceivingrepairerConfirmed": false,
    "ReturnFromRepairerConfirmed": false
    }]
    }

    come posso far vedere a video solo alcune parti di questa? es. solo ObjectDescription oppure un elenco di parti?

    grazie mille

    Rispondi a questo commento

Scrivi un Commento

Il tuo indirizzo email non sarà pubblicato.
I campi contrassegnati da un * sono obbligatori

Articoli e Argomenti correlati

Categorie popolari

Iscriviti alla mia newsletter

La tua e-mail con me sarà al sicuro.
Non fornirò mai le tue informazioni a nessuno!

Ultimi commenti

Umberto

Grazie Michele, in realtà faccio un po' fatica a districarmi con l'assistenza di FB... Ora provo e …

Michele Pisani

Ciao Umberto,
hai provato a contattare il supporto tramite la community?

Umberto

Salve, dopo un paio di mesi di tentativi e di modifiche, sono riuscito a far partire la procedura …

Rosa

Salve. Sto unendo due Pagine. Tutto è stato da me 'omogeneizzato', quindi coi nomi simili ci siamo …