par
pika28 » 26 mai 2022, 22:28
Bonjour à tous,
Je suis en train d'écrire un bout de code PHP pour récupérer des données dans un JSON afin de les envoyer toutes les minutes dans une DB mySQL. J'ai réussi tant bien que mal à activer le JSON de ma domotique. J'ai réussi à me connecter à ma DB. Je n'arrive pas cependant à récupérer des données d'un flux JSON. J'arrive à récupérer le flux brut mais pas une donnée spécifique. Si j'ai bien compris, j'ai des tableau dans un tableau.
Merci d'avance de votre aide.
Mon JSON
Code : Tout sélectionner
[{"_id":1048576,"anaIn":2147483647,"anaRealValue":7.3,"type":18,"transfertFunction":"","name":"FUNCTION PH 1","errorStatus":"0x0000"},{"_id":1048577,"anaIn":654393254,"anaRealValue":1.29,"type":18,"transfertFunction":"","name":"FUNCTION Chlore 1","errorStatus":"0x0000"},{"_id":1048578,"anaIn":2147483647,"anaRealValue":36.46,"type":18,"transfertFunction":"","name":"FUNCTION T°C 1","errorStatus":"0x0000"},{"_id":1048579,"anaIn":1875722474,"anaRealValue":7.32,"type":18,"transfertFunction":"","name":"FUNCTION PH 2","errorStatus":"0x0000"},{"_id":1048580,"anaIn":713834419,"anaRealValue":1.39,"type":18,"transfertFunction":"","name":"FUNCTION Chlore 2","errorStatus":"0x0000"},{"_id":1048581,"anaIn":2147483647,"anaRealValue":36.22,"type":18,"transfertFunction":"","name":"FUNCTION T°C 2","errorStatus":"0x0000"}]
Mon PHP
Code : Tout sélectionner
<?php
// Données de connexion
$servername = "localhost:3306";
$username = "user";
$password = "pass";
$db = "pool_data";
// Create connection
$conn = new mysqli($servername, $username, $password, $db);
$json = "lien vers mon JSON";
$jsonString = file_get_contents($json);
/*
// On définie la requête SQL d'insertion
$query = "INSERT INTO `pool_table` (`Date`,`Heure`, `PH1`, `CL1`, `TP1`, `PH2`, `CL`, `TP2`) VALUES ('2022-05-26', '16:00', '7.31', '1.41', '36.01', '7.32', '1.42', '36.02') ";
mysqli_query($conn,$query);
*/
$data = json_decode($jsonString, $assoc=true);
echo("The data is: \n");
echo $data->$anaRealValue;
?>
J'obtiens :
Code : Tout sélectionner
The data is: /volume1/web/index.php:24: array(6) { [0] => array(7) { '_id' => int(1048576) 'anaIn' => int(1863270634) 'anaRealValue' => double(7.32) 'type' => int(18) 'transfertFunction' => string(0) "" 'name' => string(13) "FUNCTION PH 1" 'errorStatus' => string(6) "0x0000" } [1] => array(7) { '_id' => int(1048577) 'anaIn' => int(2147483647) 'anaRealValue' => double(1.3) 'type' => int(18) 'transfertFunction' => string(0) "" 'name' => string(17) "FUNCTION Chlore 1" 'errorStatus' => string(6) "0x0000" } [2] => array(7) { '_id' => int(1048578) 'anaIn' => int(1339179537) 'anaRealValue' => double(36.32) 'type' => int(18) 'transfertFunction' => string(0) "" 'name' => string(15) "FUNCTION T°C 1" 'errorStatus' => string(6) "0x0000" } [3] => array(7) { '_id' => int(1048579) 'anaIn' => int(481902826) 'anaRealValue' => double(7.31) 'type' => int(18) 'transfertFunction' => string(0) "" 'name' => string(13) "FUNCTION PH 2" 'errorStatus' => string(6) "0x0000" } [4] => array(7) { '_id' => int(1048580) 'anaIn' => int(1237925808) 'anaRealValue' => double(1.37) 'type' => int(18) 'transfertFunction' => string(0) "" 'name' => string(17) "FUNCTION Chlore 2" 'errorStatus' => string(6) "0x0000" } [5] => array(7) { '_id' => int(1048581) 'anaIn' => int(2147483647) 'anaRealValue' => double(36.63) 'type' => int(18) 'transfertFunction' => string(0) "" 'name' => string(15) "FUNCTION T°C 2" 'errorStatus' => string(6) "0x0000" } }
Bonjour à tous,
Je suis en train d'écrire un bout de code PHP pour récupérer des données dans un JSON afin de les envoyer toutes les minutes dans une DB mySQL. J'ai réussi tant bien que mal à activer le JSON de ma domotique. J'ai réussi à me connecter à ma DB. Je n'arrive pas cependant à récupérer des données d'un flux JSON. J'arrive à récupérer le flux brut mais pas une donnée spécifique. Si j'ai bien compris, j'ai des tableau dans un tableau.
Merci d'avance de votre aide.
Mon JSON
[code][{"_id":1048576,"anaIn":2147483647,"anaRealValue":7.3,"type":18,"transfertFunction":"","name":"FUNCTION PH 1","errorStatus":"0x0000"},{"_id":1048577,"anaIn":654393254,"anaRealValue":1.29,"type":18,"transfertFunction":"","name":"FUNCTION Chlore 1","errorStatus":"0x0000"},{"_id":1048578,"anaIn":2147483647,"anaRealValue":36.46,"type":18,"transfertFunction":"","name":"FUNCTION T°C 1","errorStatus":"0x0000"},{"_id":1048579,"anaIn":1875722474,"anaRealValue":7.32,"type":18,"transfertFunction":"","name":"FUNCTION PH 2","errorStatus":"0x0000"},{"_id":1048580,"anaIn":713834419,"anaRealValue":1.39,"type":18,"transfertFunction":"","name":"FUNCTION Chlore 2","errorStatus":"0x0000"},{"_id":1048581,"anaIn":2147483647,"anaRealValue":36.22,"type":18,"transfertFunction":"","name":"FUNCTION T°C 2","errorStatus":"0x0000"}][/code]
Mon PHP
[code] <?php
// Données de connexion
$servername = "localhost:3306";
$username = "user";
$password = "pass";
$db = "pool_data";
// Create connection
$conn = new mysqli($servername, $username, $password, $db);
$json = "lien vers mon JSON";
$jsonString = file_get_contents($json);
/*
// On définie la requête SQL d'insertion
$query = "INSERT INTO `pool_table` (`Date`,`Heure`, `PH1`, `CL1`, `TP1`, `PH2`, `CL`, `TP2`) VALUES ('2022-05-26', '16:00', '7.31', '1.41', '36.01', '7.32', '1.42', '36.02') ";
mysqli_query($conn,$query);
*/
$data = json_decode($jsonString, $assoc=true);
echo("The data is: \n");
echo $data->$anaRealValue;
?> [/code]
J'obtiens :
[code]The data is: /volume1/web/index.php:24: array(6) { [0] => array(7) { '_id' => int(1048576) 'anaIn' => int(1863270634) 'anaRealValue' => double(7.32) 'type' => int(18) 'transfertFunction' => string(0) "" 'name' => string(13) "FUNCTION PH 1" 'errorStatus' => string(6) "0x0000" } [1] => array(7) { '_id' => int(1048577) 'anaIn' => int(2147483647) 'anaRealValue' => double(1.3) 'type' => int(18) 'transfertFunction' => string(0) "" 'name' => string(17) "FUNCTION Chlore 1" 'errorStatus' => string(6) "0x0000" } [2] => array(7) { '_id' => int(1048578) 'anaIn' => int(1339179537) 'anaRealValue' => double(36.32) 'type' => int(18) 'transfertFunction' => string(0) "" 'name' => string(15) "FUNCTION T°C 1" 'errorStatus' => string(6) "0x0000" } [3] => array(7) { '_id' => int(1048579) 'anaIn' => int(481902826) 'anaRealValue' => double(7.31) 'type' => int(18) 'transfertFunction' => string(0) "" 'name' => string(13) "FUNCTION PH 2" 'errorStatus' => string(6) "0x0000" } [4] => array(7) { '_id' => int(1048580) 'anaIn' => int(1237925808) 'anaRealValue' => double(1.37) 'type' => int(18) 'transfertFunction' => string(0) "" 'name' => string(17) "FUNCTION Chlore 2" 'errorStatus' => string(6) "0x0000" } [5] => array(7) { '_id' => int(1048581) 'anaIn' => int(2147483647) 'anaRealValue' => double(36.63) 'type' => int(18) 'transfertFunction' => string(0) "" 'name' => string(15) "FUNCTION T°C 2" 'errorStatus' => string(6) "0x0000" } } [/code]