Garder type de données php/mysql en json
ZMEX
Messages postés
51
Statut
Membre
-
Giorgiolino Messages postés 270 Statut Contributeur -
Giorgiolino Messages postés 270 Statut Contributeur -
Bonjour,
j'essaie de transformer des données issues de mysql en json.
j'y arrive grâce à json_encode()
mais je ne sais pas comment garder le type de mes données, parce que le json généré est tout en string.
{"NUMCLI":"2","NOM":"hero","PRENOM":"tif","ADRESSE":"23 rue delarue","CP":"92000","ville":"clamart"}
mon code est comme suit :
vous remarquez que mes identifiants sont entre guillemets.
Comment faire?
Je vous remercie d'avance pour votre aide.
j'essaie de transformer des données issues de mysql en json.
j'y arrive grâce à json_encode()
mais je ne sais pas comment garder le type de mes données, parce que le json généré est tout en string.
{"NUMCLI":"2","NOM":"hero","PRENOM":"tif","ADRESSE":"23 rue delarue","CP":"92000","ville":"clamart"}
mon code est comme suit :
<?php
echo "<hr>";
$tablo = array();
$sql="SELECT * FROM client";
$res = $idcom->query($sql);
while ($lig = $res ->fetch_assoc()) {
foreach($lig as $champs => $valeur)
$tablo[$champs] = $valeur ;
}//fin du while
print_r($tablo);
echo "<br>";
echo json_encode($tablo);
?>
vous remarquez que mes identifiants sont entre guillemets.
Comment faire?
Je vous remercie d'avance pour votre aide.
A voir également:
- Garder type de données php/mysql en json
- Fuite données maif - Guide
- Supprimer les données de navigation - Guide
- Trier des données excel - Guide
- Clear type - Guide
- Mysql community server - Télécharger - Bases de données
pas besoin de s'exciter de la sorte. Si tu n'as pas encore reçu de réponse c'est que personne n'a trouvé les ressources pour te répondre, alors zen.
Concernant ton problème, ci-après quelques éléments qui peuvent t'aider:
1/
If you have problems with quotes when encoding numeric data retrieved from the database, you can just cast that value to integer and there will be no quotes: $testArr['key'] = '1'; print json_encode($testArr); ===> {"key":"1"} $testArr['key'] = (int)'1'; print json_encode($testArr); ===> {"key":1} Don't forget that you have to deal with numbers, otherwise your string will be converted to 0.2/
To battle the quoting of numbers when encoding data retrieved from mysql you could do a simple preg_replace() to remove the quotes on numbers. This has worked for me: <?php $json = json_encode($dataFromMysql); $json = preg_replace('/"(-?\d+\.?\d*)"/', '$1', $json); ?>L'ensemble peut-être retrouvé sur cette page du manuel php (qui est aussi ton ami) :
https://www.php.net/manual/fr/function.json-encode.php
Globalement, l'idée c'est de "nettoyer" les quotes autour des valeurs qui sont des nombres.
Bon courage.