PHP5 / Array /Json [Résolu/Fermé]

Signaler
Messages postés
47
Date d'inscription
dimanche 19 avril 2009
Statut
Membre
Dernière intervention
27 septembre 2010
-
Messages postés
388
Date d'inscription
mercredi 13 janvier 2010
Statut
Membre
Dernière intervention
15 novembre 2011
-
Bonjour,

J'ai un petit souci.
Je veux en PHP5 récupérer un contenu d'une requete en json.
Mon code est :
<?php

include ("bd/ConnectBD.inc.php");
$idcom = connex_objet("ecoconsobd","ConnectBD");
//Création et envoi de la requête SQL
$requeteSQL="SELECT NOM,PRENOM FROM client";
$result = $idcom->query($requeteSQL);

      if (!$result){
            echo $idcom->errno;
            echo $idcom->error;
            echo "erreur : $idcom->error";
            echo "lecture imposible";
      }
      else {
         //init des variables
         $debut = true;
         $nbColonnes= $result ->field_count;
         $nblig = $result -> num_rows;
         $nomColonne = $result -> fetch_field();

            echo "{\"clients\":[";//début de l'objet client et du tableau des résultats
         //test si il y a des résultats
         if ($nblig){
         //boucle sur les différentes lignes de résultats
               while ($row = $result ->fetch_row()) {
                   //gestion de l'accolade du début
                   if ($debut){
                       echo "{";
                       $debut = false;
                   } else {
                       echo ",{";
                   }
                   for($j=0;$j<$nbColonnes;$j++){
                   //foreach ($nomColonne as $j){
                       //$nomColonne=mysql_field_name($result,$j);
                      //$colonne = $result -> fetch_object();

                       echo "\"".$nomColonne->name."\":\"". utf8_encode($row[$nomColonne])."\"";
                       if ($j != $nbColonnes-1)	echo ",";	//conditionne la virgule la dernière colonne
                       }//fin du for


                   echo "}";
                   }//fin du while
         }//fin du if
         //-------
         echo "]}";//cloture le tableau et l'objet
      }
?>



tout cela pour construire un résultat en json de la sorte :
{"clients":[
{"nom":"hanks","prenom":"tom"},
{"nom":"jolie","prenom":"angelina"}
]}




Quand je la teste, j'ai cette erreur :

{"clients":[{
Warning: Illegal offset type in C:\wamp\www\ecotarif\test_req_json.php on line 39
"NOM":"",
Warning: Illegal offset type in C:\wamp\www\ecotarif\test_req_json.php on line 39
"NOM":""},{
Warning: Illegal offset type in C:\wamp\www\ecotarif\test_req_json.php on line 39
"NOM":"",
Warning: Illegal offset type in C:\wamp\www\ecotarif\test_req_json.php on line 39
"NOM":""}]}



s'il vous plait, je n'arrive pas à trouver comment le faire.
merci d'avance.

3 réponses

Messages postés
47
Date d'inscription
dimanche 19 avril 2009
Statut
Membre
Dernière intervention
27 septembre 2010
15
merci pour votre réponse !
je suis en train de regarder cette voie.

mais, je n'arrive pas à stocker le résultat de la requete dans un array().

si vous pouvez m'aider à faire la boucle pour construire l'array(). je vous remercie.
comme ça je n'aurais qu'à faire un json_encode de mon array().
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
388
Date d'inscription
mercredi 13 janvier 2010
Statut
Membre
Dernière intervention
15 novembre 2011
52
$tab = array();
foreach($nomColonne as $champs => $valeur)
    $tab[$champs] = $valeur ;
Messages postés
47
Date d'inscription
dimanche 19 avril 2009
Statut
Membre
Dernière intervention
27 septembre 2010
15
j'ai fait ce test et cela marche ! merci.

<?php
echo "<hr>";
   $tablo = array();
   $sql="SELECT * FROM client";
   $res = $idcom->query($sql);
   while($lig = $res -> fetch_row())
{
   $tablo[] = $lig;
}

print_r($tablo);
echo "<br>";
echo json_encode($tablo);
?>


resultat :
[["1","toto","titi","rue sans rue","92000","paris"],["2","hero","fifi","23 rue delarue","92000","paris"]]


merci :) !
Messages postés
388
Date d'inscription
mercredi 13 janvier 2010
Statut
Membre
Dernière intervention
15 novembre 2011
52
Niquel !
Avec plaisir :)
Messages postés
388
Date d'inscription
mercredi 13 janvier 2010
Statut
Membre
Dernière intervention
15 novembre 2011
52
Bonjour,

tu veux écrire une requete en JSON j'ai l'impression, tu peux regarder du côté de la fonction json_encode, peut être que cela sera plus facile que ta procédure :
https://www.php.net/manual/en/function.json-encode.php

Sinon peux-tu nous dire qu'elle est ta ligne 39 s'il te plait ?