claudegel
Messages postés3Date d'inscriptionmardi 30 décembre 2014StatutMembreDernière intervention30 décembre 2014
-
Modifié par Whismeril le 30/12/2014 à 10:03
claudegel
Messages postés3Date d'inscriptionmardi 30 décembre 2014StatutMembreDernière intervention30 décembre 2014
-
30 déc. 2014 à 03:47
Bonjour,
Je développe un script php servant à interroger une base de donnée mysql. Je recois la requête via json et retourne le résultat encoder avec json_encode
mon script doit pouvoir supporter une requete aléatoire contenant un nombre variable de champs a retourner. J'ai donc programmé une routine qui construit le data devant être encodé via json_encode, malheureusement ça ne fonctionne pas et le code retourné est corrompu.
le code statique suivant produit un data json correcte
--------
while ($row = mysql_fetch_array($result,MYSQL_ASSOC)){
$resultat[] = array(
nom => $row['nom'], //champ 'nom' de la table mysql
nocli => $row['nocli'] //autre champ (nocli)
);
}
echo json_encode($resultat);
--------
le résultat obtenu est correcte :
[{"nom":"Richard et Fils Inc.","nocli":"227-1"},{"nom":"Perreault et Fils Inc.","nocli":"227"},....
de cette façon je dois connêtre à l'avance les noms de champs mysql.
Le code suivant doit fonctionner si je ne commais pas le nom des champs mysql ni le nombre de champs. Je recois cet info avec la requête json et je stock les noms de champs dans
while ($row = mysql_fetch_array($result,MYSQL_ASSOC)){
$result_array = ""; //variable temporaire
$i = 1;
for ($i==1;$i<=$nbfield;$i++){ // $nbfield contient le nombre de champs à retourner
$result_array .= $champ[$i]." => ".$row[$champ[$i]].","; //le nombre de champ peut donc varier
}
$result_array = rtrim($result_array,","); //pour enlever la derniere virgule
$resultat[] = array($result_array);
}
echo json_encode($resultat);
---------
le résultat obtenu est incorrecte:
[["nom => Richard et Fils Inc.,nocli => 227-1"],["nom => Perreault et Fils Inc.,nocli => 227"],...
l'encodage est corrompu
qu'est-ce qui ne fonctionne pas dans mon dernier code