[PHP] Oracle, convertire una query multiline in Json

GiulioBallabio

Nuovo Utente
10 Ott 2018
1
0
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:

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.235
322
83
@GiulioBallabio
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
quando posti del codice PHP e il tag
per il codice generico, oppure la funzione codice dalla barra degli strumenti


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
 

marino51

Utente Attivo
28 Feb 2013
2.904
160
63
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: