lire json pour l'écrire dans base mysql
Posté : 01 juin 2016, 15:35
bonjour,
j'essai de lire un json et d'ecrire les donnees dans une base mysql.
avec le Json suivant:
$json_source='[{"ca_serv": 100,"ca_prod": 111},{"ca_serv": 200,"ca_prod": 222},{"ca_serv": 300,"ca_prod": 333}]';
ça marche en faisant:
mais je voudrais changer ma structure du Json comme suit:
$json_source='{"codeclient": "sc_greg1","histo":[{"ca_serv": 100,"ca_prod": 111},{"ca_serv": 200,"ca_prod": 222},{"ca_serv": 300,"ca_prod": 333}]}';
mais du coup je sais pas comment accéder à mes données
j'ai essayé de mettre
mais ça marche pas, comme je peux accéder a code_client et aux divers ca_serv ?
merci
exyacc
j'essai de lire un json et d'ecrire les donnees dans une base mysql.
avec le Json suivant:
$json_source='[{"ca_serv": 100,"ca_prod": 111},{"ca_serv": 200,"ca_prod": 222},{"ca_serv": 300,"ca_prod": 333}]';
ça marche en faisant:
Code : Tout sélectionner
<?php
$json_source='[{"ca_serv": 100,"ca_prod": 111},{"ca_serv": 200,"ca_prod": 222},{"ca_serv": 300,"ca_prod": 333}]';
$sql = 'insert into ca_jour (code_client, ca_serv, ca_prod) values(?, ?, ?)';
$connexion = mysqli_connect('xxx.mysql.db', 'ma_base', 'mon_pass', 'mon_login') or die ('KO Echec de connexion');
// Création de l'objet commande
$prepa = mysqli_stmt_init($connexion) or die ('KO Erreur SQL ( 2 )');
// Préparation de la requête : envoi à la base
mysqli_stmt_prepare($prepa, $sql) or die ('KO Erreur SQL ( 3 )');
$json_data = json_decode($json_source, true);
foreach($json_data as $histo){
$code_client = 'ccc';
$ca_serv =$histo['ca_serv'];
$ca_prod = $histo['ca_prod'];
mysqli_stmt_bind_param($prepa, 'sdd', $code_client, $ca_serv, $ca_prod) or die ('KO Erreur SQL ( 4 )');
mysqli_stmt_execute($prepa) or die('KO Erreur SQL ( 5 )');
}
mysqli_stmt_close($prepa);
echo 'OK';
?>
$json_source='{"codeclient": "sc_greg1","histo":[{"ca_serv": 100,"ca_prod": 111},{"ca_serv": 200,"ca_prod": 222},{"ca_serv": 300,"ca_prod": 333}]}';
mais du coup je sais pas comment accéder à mes données
j'ai essayé de mettre
Code : Tout sélectionner
$ca_serv =$histo['histo']['ca_serv'];
merci
exyacc