[PHP] Oracle, convertire una query multiline in Json

Discussione in 'PHP' iniziata da GiulioBallabio, 10 Ottobre 2018.

  1. GiulioBallabio

    GiulioBallabio Nuovo Utente

    Registrato:
    10 Ottobre 2018
    Messaggi:
    1
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Ciao a tutti,

    avrei bisogno di una mano per convertire il risultato di una Query Oracle che restituisce più di una riga
    e trasformarla in Array Json.

    premetto che questa operazione già la eseguo normalmente per query che mi restituiscono un unica riga.
    PHP:
    $select_DATI2 "Select WORKINGSTATE
                                       From FAST_MAPPA
                                     Where MACHINENUMBER = 
    $par_macchina";
              
    $statement_DATI2 oci_parse ($conn$select_DATI2);
    oci_execute ($statement_DATI2); 

    while(
    $row_DATI2 oci_fetch_array($statement_DATI2)){
                  
            
    $val_stato $row_DATI2['WORKINGSTATE'];
                  
    }

    $_ESITO2 = Array(

            
    "stato" => $val_stato

     
    );
              
    echo 
    json_encode$_ESITO1 );
    es singola riga:
     
    Ultima modifica di un moderatore: 10 Ottobre 2018
  2. Max 1

    Max 1 Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    29 Febbraio 2012
    Messaggi:
    3.363
    Mi Piace Ricevuti:
    257
    Punteggio:
    83
    Sesso:
    Maschio
    @GiulioBallabio
    Da regolamento del forum, come tutti noi sei tenuto ad usare il tag [​IMG] quando posti del codice PHP e il tag [​IMG] per il codice generico, oppure la funzione codice dalla barra degli strumenti
    [​IMG]

    Inoltre ti prego di leggere attentamente il regolamento generale del forum e quello di sezione dove posti
    Grazie

    Per questa volta te lo sistemo io ma mi raccomando per il futuro
     
  3. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    556
    Mi Piace Ricevuti:
    26
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    PHP:
    while($row_DATI2 oci_fetch_array($statement_DATI2)){
               
            
    $val_stato[] = $row_DATI2['WORKINGSTATE'];
               
    }
    $_ESITO2 = Array(

            
    "stato" => $val_stato

     
    );
             
    echo 
    json_encode$_ESITO2 );
     
  4. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    2.271
    Mi Piace Ricevuti:
    114
    Punteggio:
    63
    Occupazione:
    free lance
    Località:
    Lombardia
    se i miei ricordi di oracle non mi tradiscono,
    potresti leggere il db con "oci_fetch_all"

    "oci_fetch_all" ti restituisce un'array così fatta
    Codice:
    $DATI2[0]['WORKINGSTATE']
    $DATI2[1]['WORKINGSTATE']
    ......
    $DATI2[n]['WORKINGSTATE']
    dove il primo indice 0->n rappresenta il numero del record ed il secondo identifica la colonna

    se il formato della suddetta array va bene, il codice si riduce drasticamente senza inutili loop
    PHP:
    $select_DATI2 "Select WORKINGSTATE
                       From FAST_MAPPA
                      Where MACHINENUMBER = 
    $par_macchina";

    $statement_DATI2 oci_parse ($conn$select_DATI2);

    $DATI2 oci_fetch_all($statement_DATI2);

    echo 
    json_encode$DATI2 );
    se ti capita di provarlo e mi confermi il funzionamento, vuol dire che non sono ancora arrugginito ….
     
    Ultima modifica: 10 Ottobre 2018
Sto caricando...

Condividi questa Pagina