Pagina 1 di 2
Salvare array in database
Inviato: 29/01/2015, 15:45
da tespes
Buongiorno a tutti.
Il mio problema è questo: da un'applicazione android mi arriva una stringa creata dalla libreria GSON e postata tramite Json. La stringa è così composta:
Codice: Seleziona tutto
[{"Field1":"1","Field2":"2","Field3":"3"},
{"Field1":"4","Field2":"5","Field3":"6"},
{"Field1":"7","Field2":"8","Field3":"9"}]
Il mio obbiettivo è quello di salvare i vari "record" (che ancora non lo sono) in una tabella già esistente così formata, attraverso una "insert to":
Tabella1
Campi:
Field1 --> int
Field2 --> int
Field3 --> int
Ho cercato un po' in rete e mi è parso di capire che il comando da utilizzare è json_encode, così ho iniziato a creare il seguente codice:
Codice: Seleziona tutto
<?php
$jsonData = '[{"Field1":"1", "Field2":"2", "Field3":"3"},
{"Field1":"4", "Field2":"5", "Field3":"6"},
{"Field1":"7", "Field2":"8", "Field3":"9"}]';
$phpArray = json_decode($jsonData);
print_r($phpArray);
?>
che come output mostra il seguente risultato:
Codice: Seleziona tutto
Array ( [0] => stdClass Object ( [Field1] => 1 [Field2] => 2 [Field3] => 3 ) [1] => stdClass Object ( [Field1] => 4 [Field2] => 5 [Field3] => 6 ) [2] => stdClass Object ( [Field1] => 7 [Field2] => 8 [Field3] => 9 ) )
Qualcuno mi può aiutare a inserire i vari record in una tabella?
Grazie in anticipo
Re: Salvare array in database
Inviato: 29/01/2015, 16:58
da brunino
devi eseguire un ciclo for...
Re: Salvare array in database
Inviato: 29/01/2015, 17:02
da tespes
Un ciclo for sulla variabile phpArray?
Un aiutino in più...

Re: R: Salvare array in database
Inviato: 29/01/2015, 17:55
da brunino
Codice: Seleziona tutto
$conta = count($phpArray);
for($i=0;$i<$conta;$i++){
echo "$phpArray[$i][Field1] $phpArray[$i][Field2] $phpArray[$i][Field3] <br />";
//ora c'é una stampa a video, tu devi mettere qui la query
}
Inviato dal mio GT-S5360 con Tapatalk 2
Re: Salvare array in database
Inviato: 30/01/2015, 8:54
da tespes
Grazie Brunino, sei stato veramente utilissimo.
L'unica cosa è che in questo caso mi esce il nome del campo
Codice: Seleziona tutto
Array[Field1] Array[Field2] Array[Field3]
Array[Field1] Array[Field2] Array[Field3]
Array[Field1] Array[Field2] Array[Field3]
e invece a me servirebbe il suo valore. Una cosa tipo
Per il resto tutto chiaro. E' possibile?
Grazie ancora
Re: Salvare array in database
Inviato: 30/01/2015, 9:35
da Micogian
Con foreach dovrebbe funzionare:
Codice: Seleziona tutto
$risultato = "";
foreach ( $phpArray as $chiave => $valore) {
$risultato = $risultato . " [" . $valore . "] " ;
}
echo $risultato . "<br />";
Re: Salvare array in database
Inviato: 30/01/2015, 9:43
da tespes
Grazie Micogian,
ho inserito il codice che mi hai dato dentro al ciclo for ma il risultato che mi comapre è questo:
Codice: Seleziona tutto
[Array] [Array] [Array]
[Array] [Array] [Array]
[Array] [Array] [Array]
Preciso inoltre che nel codice che ho postato all'inizio ho aggiunto il "true" al "$phpArray = json_decode($jsonData);", altrimenti sia in questo caso, che in quello suggerito da Brunino il risultato è una pagina bianca
Re: Salvare array in database
Inviato: 30/01/2015, 9:46
da tespes
Per essere più chiaro rimetto il codice completo:
Codice: Seleziona tutto
<?php
$jsonData = '[{"Field1":"1", "Field2":"2", "Field3":"3"},
{"Field1":"4", "Field2":"5", "Field3":"6"},
{"Field1":"7", "Field2":"8", "Field3":"9"}]';
$phpArray = json_decode($jsonData,true);
$conta = count($phpArray);
for($i=0;$i<$conta;$i++){
// echo "$phpArray[$i][$key] $phpArray[$i][Field2] $phpArray[$i][Field3] <br />";
//ora c'é una stampa a video, tu devi mettere qui la query
$risultato = "";
foreach ( $phpArray as $chiave => $valore) {
$risultato = $risultato . " [" . $valore . "] " ;
}
echo $risultato . "<br />";
}
?>
e questo è l'output:
Codice: Seleziona tutto
[Array] [Array] [Array]
[Array] [Array] [Array]
[Array] [Array] [Array]
Re: Salvare array in database
Inviato: 30/01/2015, 10:48
da tespes
Ok, grazie al vostro aiuto con l'estrazione dei dati ci sono saltato fuori. Ecco il codice
Codice: Seleziona tutto
<?php
$jsonData = '[{"Field1":"1", "Field2":"2", "Field3":"3"},
{"Field1":"4", "Field2":"5", "Field3":"6"},
{"Field1":"7", "Field2":"8", "Field3":"9"}]';
$phpArray = json_decode($jsonData,true);
foreach ( $phpArray as $chiave => $valore) {
$Campo1 = $valore[Field1];
$Campo2 = $valore[Field2];
$Campo3 = $valore[Field3];
echo "$Campo1 $Campo2 $Campo3 <br />";
//Metto qui la query
}
?>
Adesso proseguo con la query.
Grazie 1000
Re: Salvare array in database
Inviato: 30/01/2015, 10:59
da Micogian
Codice: Seleziona tutto
<?php
$jsonData = '[{"Field1":"1", "Field2":"2", "Field3":"3"},
{"Field1":"4", "Field2":"5", "Field3":"6"},
{"Field1":"7", "Field2":"8", "Field3":"9"}]';
$phpArray = json_decode($jsonData,true);
$conta = count($phpArray);
for( $i=0; $i < $conta; ++$i)
{
$risultato = "";
foreach ( $phpArray[$i] as $valore) {
//echo "Valore: " . $valore . "<br />";
$risultato = $risultato . " [" . $valore . "] " ;
}
echo $risultato . "<br />";
}
?>