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

Langage PHP Discussion :

afficher le résultat d'un json_encode


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 17
    Points : 25
    Points
    25
    Par défaut afficher le résultat d'un json_encode
    Je doit développer une application Android et j'utilise une page PHP qui fait une requet SQL et j'essaye d'encoder le resultat en JSON pour que l'appli android la lise mais le print ne me retourne rien une page blanche sens erreur

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    	$conn = mysqli_connect("localhost","root","","rli_vernalis") or die ("connection fail");
     
    	$sql = "SELECT id_article , titre , extra_intitule , extra_descriptifoffre , extra_datedebut , extra_horairesoffre , extra_nbpostes ,  extra_salaire , extra_experience , extra_formation , extra_autre , extra_typecontrat , extra_commune  FROM  spip_articles WHERE  statut  LIKE 'publie' AND id_rubrique = '46'";
    	$result = (mysqli_query($conn,$sql)) or die ("fail 1");
    	while($row=mysqli_fetch_assoc($result))
    	{
    	$output[]=$row;
    	}
    	print json_encode($output);	
    ?>

    J’utilise WAMP pour travailler en local avec la base de donné importé pour faire mes test
    Es que cela viens du fait d'utiliser SQLi ?
    Ou juste c'est pas possible se que je fais ?

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut debuguer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while($row=mysqli_fetch_assoc($result))
    	{
    	var_dump($row);
    	}

  3. #3
    Membre régulier Avatar de monaka
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2017
    Messages : 64
    Points : 107
    Points
    107
    Par défaut
    bonne nouvelle pour toi le problème se trouve plutôt au niveau de ta requête, as tu tester la requête dans phpmyadmin

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 17
    Points : 25
    Points
    25
    Par défaut
    Alors du coup c'est pas un problème de requet car avec le var_dump j’obtiens mes ligne sous cette forme


    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
    D:\wamp64\www\rli\Index.php:8:
    array (size=13)
      'id_article' => string '919' (length=3)
      'titre' => string '238.17' (length=6)
      'extra_intitule' => string 'COMPTABLE H/F' (length=13)
      'extra_descriptifoffre' => string 'Industrie recrute 1 comptable:
    -comptabilit� clients/fournisseurs
    -relance clients / suivi cr�dit clients
    -comptabilit� g�n�rale
    -r�vision des comptes
    -cl�ture mensuelle
    -pr�paration des budgets en collaboration avec le directeur
    -d�clarations fiscales (DEB, TVA, TVS...)
    -connaissance gestion et pr�vision de tr�sorerie
    -rapprochements bancaires
    -contr�le de la valorisation du stock
    -analyse et suivi des co�ts de revient par produit, client, secteur d'activit�
    -suivi et renseignement des tableaux'... (length=561)
      'extra_datedebut' => string 'd�cembre 2017' (length=13)
      'extra_horairesoffre' => string '35h par semaine' (length=15)
      'extra_nbpostes' => string '1' (length=1)
      'extra_salaire' => string '� voir avec l'employeur' (length=23)
      'extra_experience' => string 'exp�rience de minimum 10 ans souhait�e' (length=38)
      'extra_formation' => string 'BAC +2 comptabilit�' (length=19)
      'extra_autre' => string 'ma�trise WORD EXCEL SAGE ' (length=25)
      'extra_typecontrat' => string 'CDI' (length=3)
      'extra_commune' => string 'commune du RLI' (length=14)
    (c'est une de mes nombreuses ligne)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    	$conn = mysqli_connect("localhost","root","","rli_vernalis") or die ("connection fail");
     
    	$sql = "SELECT id_article , titre , extra_intitule , extra_descriptifoffre , extra_datedebut , extra_horairesoffre , extra_nbpostes ,  extra_salaire , extra_experience , extra_formation , extra_autre , extra_typecontrat , extra_commune  FROM  spip_articles WHERE  statut  LIKE 'publie' AND id_rubrique = '46'";
    	$result = (mysqli_query($conn,$sql)) or die ("fail 1");
    	while($row=mysqli_fetch_assoc($result))
    	{
    		var_dump($row);
     
    	$output[]=$row;
    	}
    	print json_encode($output);	
    ?>
    du coup es-que c'est bien encoder en Json ?

  5. #5
    Membre régulier Avatar de monaka
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2017
    Messages : 64
    Points : 107
    Points
    107
    Par défaut
    alors après tests réciproque le problème viendrait de ta colonne extra_descriptionoffre lenght 561 un peu trop de caractère je suppose,essaie de l'extrait et revérifier en attendant d'avoir une solution


    bin non,ce n'est pas le soucis,alors je continue


    et voila que je trouve le problème sur les accents

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 17
    Points : 25
    Points
    25
    Par défaut
    du coups le problème des accent j'ai pas du encodé la requête en UTF8 je pense . Mais j'ai pas trouvé comment faire avec SQLi peut être que c'est les accent pose problème au encodage en Json.

  7. #7
    Membre régulier Avatar de monaka
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2017
    Messages : 64
    Points : 107
    Points
    107
    Par défaut
    bien au contraire ,c'est bien parce qu'ils sont bien en .... dans ta bd que nous avons un soucis,et il ne vient surtout pas de toi

    exemple
    comptabilit&#65533
    quel encodage?

    ouvre phpmyadmin sélectionne ta bd->opérations->interclassement,ensuite la même pour toutes tes tables et je crois que ça devrais aller

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 17
    Points : 25
    Points
    25
    Par défaut
    je parle de cette encodage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    print json_encode($output);	
    return json_encode($output);
    qui été le but premier de mon problème ^^

    car j'essaye de récupérer le résultat de ma grosse requête en Json pour que mon Api Androïde puisse la lire

    Le Json ça doit avoir cette tête
    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
     
    { 
      "menu": "Fichier", 
      "commandes": [ 
          {
              "titre": "Nouveau", 
              "action":"CreateDoc"
          }, 
          {
              "titre": "Ouvrir", 
              "action": "OpenDoc"
          }, 
          {
              "titre": "Fermer",
              "action": "CloseDoc"
          }
       ] 
    }
    et la j'ai juste le retour de mes ligne

  9. #9
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Si tu as bien des données il faut regarder les erreurs json
    http://php.net/manual/fr/function.json-last-error.php

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 17
    Points : 25
    Points
    25
    Par défaut
    j'ai rajouté ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $json = json_encode($output);	
    $error = json_last_error_msg();
    var_dump($error )
    et il me retourne

    Malformed UTF-8 characters, possibly incorrectly encoded

    une piste ?

  11. #11
    Membre régulier Avatar de monaka
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2017
    Messages : 64
    Points : 107
    Points
    107
    Par défaut
    ça voudrait simplement dire que l'encodage est bon

    JSON_ERROR_UTF8= true(erreur d'encodage utf8)
    =false(bon encodage ) du moins json n'a aucun soucis avec

    le même principe pour JSON_ERROR_SYNTAX ,JSON_ERROR_DEPTH .....

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 17
    Points : 25
    Points
    25
    Par défaut
    en affichant juste l'erreur jai ça

    Malformed UTF-8 characters, possibly incorrectly encoded

  13. #13
    Membre régulier Avatar de monaka
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2017
    Messages : 64
    Points : 107
    Points
    107
    Par défaut
    très bien, comme je te l'avais souligné il y'a peu
    comptabilit&#65533
    , quelle est l'encodage de ta bd et de tes tables dans la bd parce qu'il faut signifier que json reçoit que du utf8, donc le soucis vient des données qu'il reçoit

  14. #14
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Est-ce que ton fichier .php et la connexion à la base de données sont bien en UTF8 ?

  15. #15
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 17
    Points : 25
    Points
    25
    Par défaut
    j'ai me se code après la connexion a la base de donné

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	mysqli_query ($conn,'SET NAMES UTF8');
    et pourtant le PhpMyAdmin et la page PHP etaient bien configuré en UTF8

    bon ben du coup problème résolut j'ai bien du Json en sorti

    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
     
    [
    {
    id_article: "919",
    titre: "238.17",
    extra_intitule: "COMPTABLE H/F",
    extra_descriptifoffre: "Industrie recrute 1 comptable: -comptabilité clients/fournisseurs -relance clients / suivi crédit clients -comptabilité générale -révision des comptes -clôture mensuelle -préparation des budgets en collaboration avec le directeur -déclarations fiscales (DEB, TVA, TVS...) -connaissance gestion et prévision de trésorerie -rapprochements bancaires -contrôle de la valorisation du stock -analyse et suivi des coûts de revient par produit, client, secteur d'activité -suivi et renseignement des tableaux de bord opérationnels mis en place par le groupe",
    extra_datedebut: "décembre 2017",
    extra_horairesoffre: "35h par semaine",
    extra_nbpostes: "1",
    extra_salaire: "à voir avec l'employeur",
    extra_experience: "expérience de minimum 10 ans souhaitée",
    extra_formation: "BAC +2 comptabilité",
    extra_autre: "maîtrise WORD EXCEL SAGE ",
    extra_typecontrat: "CDI",
    extra_commune: "commune du RLI"
    },
    {
    id_article: "921",
    titre: "240.17", ............................................
    Merci a tous

  16. #16
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    PHPMyadmin est seulement un script de gestion, il ne modifie pas la configuration de la connexion.

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

Discussions similaires

  1. Problème pour afficher les résultats d'un count = 0
    Par Elninor dans le forum Langage SQL
    Réponses: 1
    Dernier message: 21/12/2014, 08h19
  2. [MySQL] Problème pour afficher le résultat d'une procédure stockée sous forme de table html
    Par Baleze dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/12/2012, 16h15
  3. [PHP 5.3] [POO] problème pour afficher un résultat
    Par pierrot10 dans le forum Langage
    Réponses: 3
    Dernier message: 27/05/2010, 23h14
  4. Réponses: 5
    Dernier message: 28/03/2007, 23h29
  5. Problème pour afficher le résultat d'un calcul
    Par goomazio dans le forum Assembleur
    Réponses: 3
    Dernier message: 26/01/2006, 10h42

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