IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

PHP5 / Mysql / Json [MySQL]


Sujet :

PHP & Base de données

Vue hybride

frexville PHP5 / Mysql / Json 23/08/2010, 13h36
sabotage Tu peux remplacer la moitié... 23/08/2010, 14h31
frexville j'ai fait ce test et cela... 23/08/2010, 16h13
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 134
    Par défaut PHP5 / Mysql / Json
    Bonjour,

    J'ai un petit souci.
    Je veux en PHP5 récupérer un contenu d'une requete en json.
    Mon code est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    <?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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    {"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.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu peux remplacer la moitié de ton code par la fonction
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 134
    Par défaut
    j'ai fait ce test et cela marche ! merci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <?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"]]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Wamp] PHP5&MYSQL pour VIDEODB
    Par Falman dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 10/05/2007, 14h18
  2. Apache & PHP5 & Mysql 5 !!
    Par Mike91 dans le forum Apache
    Réponses: 6
    Dernier message: 01/06/2006, 18h18
  3. [phpMyAdmin] Installation de PHP5 - MySQL - phpMyAdmin et Apache
    Par debianben dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 17/02/2006, 17h43
  4. [PHP5][MYSQL]Préserver une connexion entre les classes
    Par Invité dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 02/02/2006, 11h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo