MICHELEPISANI.IT
 

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

Convertire il risultato di una query in JSON con PHP

April 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

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 Friday, October 7, 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 Friday, October 7, 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 Friday, October 7, 2016 alle ore 16:12

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

      • Michele PisaniAutore Friday, October 7, 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 Wednesday, September 20, 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

Il Canale YouTube in ITALIANO

1 VIDEO GRATIS ogni 2 settimane! ISCRIVITI!

Entra a far parte della community su Facebook

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

Michele Pisani

Hai verificato se succede per tutte le pagine da un certo periodo di tempo in poi o solo su alcune?

Tecnowiz

Sono amministratore di un blog pure io... Intanto ti faccio i complimenti per questo articolo. …

Michele Pisani

Ciao Antonio, grazie per la fiducia :) In caso di più fogli è necessario inserire il codice del …

Antonio

Ciao Michele, ho acquistato il tuo libro che unitamente ai tuoi video sta diventando il mio corso …