phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

Salvare array in database

Area di discussione relativa al linguaggio di programmazione web più conosciuto. Il forum è dedicato anche a MySQL, la piattaforma di database più utilizzata con il PHP.
tespes
Utente
Utente
Messaggi: 7
Iscritto il: 29/01/2015, 15:26
Sesso: Maschio

Salvare array in database

Messaggio da tespes » 29/01/2015, 15:45

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

Avatar utente
brunino
Moderatore
Moderatore
Messaggi: 2819
Iscritto il: 12/01/2013, 16:35
Sesso: Maschio
Versione: 3.1.2
Server: UNIX/Linux
PHP: php 5.3
Database: mysql
Località: Toscana, Firenze
Contatta:

Re: Salvare array in database

Messaggio da brunino » 29/01/2015, 16:58

devi eseguire un ciclo for...
E' sempre gradito un grazie

Creo estensioni per phpBB 3.1 su misura: contattami via MP.
Mie Estensioni: Top Ten Topics | Ban List | Topic List
Visita il mio forum di test e sviluppo stili e estensioni phpBB 3.1

tespes
Utente
Utente
Messaggi: 7
Iscritto il: 29/01/2015, 15:26
Sesso: Maschio

Re: Salvare array in database

Messaggio da tespes » 29/01/2015, 17:02

Un ciclo for sulla variabile phpArray?
Un aiutino in più... :)

Avatar utente
brunino
Moderatore
Moderatore
Messaggi: 2819
Iscritto il: 12/01/2013, 16:35
Sesso: Maschio
Versione: 3.1.2
Server: UNIX/Linux
PHP: php 5.3
Database: mysql
Località: Toscana, Firenze
Contatta:

Re: R: Salvare array in database

Messaggio da brunino » 29/01/2015, 17:55

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
E' sempre gradito un grazie

Creo estensioni per phpBB 3.1 su misura: contattami via MP.
Mie Estensioni: Top Ten Topics | Ban List | Topic List
Visita il mio forum di test e sviluppo stili e estensioni phpBB 3.1

tespes
Utente
Utente
Messaggi: 7
Iscritto il: 29/01/2015, 15:26
Sesso: Maschio

Re: Salvare array in database

Messaggio da tespes » 30/01/2015, 8:54

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

Codice: Seleziona tutto

[1] [2] [3]
[4] [5] [6]
[7] [8] [9]
Per il resto tutto chiaro. E' possibile?
Grazie ancora

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Salvare array in database

Messaggio da Micogian » 30/01/2015, 9:35

Con foreach dovrebbe funzionare:

Codice: Seleziona tutto

$risultato = "";
foreach ( $phpArray as $chiave => $valore) {
$risultato = $risultato . " [" . $valore . "] " ;
}
echo $risultato . "<br />";

tespes
Utente
Utente
Messaggi: 7
Iscritto il: 29/01/2015, 15:26
Sesso: Maschio

Re: Salvare array in database

Messaggio da tespes » 30/01/2015, 9:43

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

Codice: Seleziona tutto

$phpArray = json_decode($jsonData,true);
Ultima modifica di tespes il 30/01/2015, 9:48, modificato 2 volte in totale.

tespes
Utente
Utente
Messaggi: 7
Iscritto il: 29/01/2015, 15:26
Sesso: Maschio

Re: Salvare array in database

Messaggio da tespes » 30/01/2015, 9:46

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] 

tespes
Utente
Utente
Messaggi: 7
Iscritto il: 29/01/2015, 15:26
Sesso: Maschio

Re: Salvare array in database

Messaggio da tespes » 30/01/2015, 10:48

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

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Salvare array in database

Messaggio da Micogian » 30/01/2015, 10:59

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 />";
}
?>

Rispondi

Torna a “PHP - MySQL”

Chi c’è in linea

Visitano il forum: Nessuno e 48 ospiti