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 :

fichier json et php [site d'annonces]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    noobies
    Inscrit en
    Décembre 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : noobies

    Informations forums :
    Inscription : Décembre 2014
    Messages : 103
    Points : 51
    Points
    51
    Par défaut fichier json et php [site d'annonces]
    bonjour, j'ai une carte map avec les département, quand je passe ma souris j'ai le nom des départements, en dessous je souhaite afficher le nombre d'annonces
    diffusées pour le département séléctionné :

    pour l'instant ca donne ca :

    Nom : 2015-01-30_134631.png
Affichages : 76
Taille : 56,4 Ko

    mais le nombre n'est pas bon car j'ai créer un fichier json manuellement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    {"1": 9,"2": 10,"3": 6,"4": 4,"5": 2,"6": 17,"7": 3,"8": 5,"9": 2,"10": 2,"11": 6,"t12": 8,"13": 23,"14": 11,"15": 2,"16": 6,"17": 10,"18": 3,"19": 4,"21": 8,
    "22": 10,"23": 3,"24": 6,"25": 6,"26": 7,"27": 11,"28": 8,"29": 5,"30": 13,"31": 20,"32": 2,"33": 17,"34": 17,"35": 14,"36": 5,"37": 14,"38": 17,"39": 4,"40": 6,
    "41": 8,"42": 7,"43": 5,"44": 15,"45": 11,"46": 4,"47": 7,"48": 1,"49": 12,"50": 12,"51": 6,"52": 7,"53": 3,"54": 3,"55": 6,"56": 16,"57": 12,"58": 4,"59": 37,
    "60": 18,"61": 8,"62": 18,"63": 7,"64": 13,"65": 5,"66": 8,"67": 18,"68": 9,"69": 26,"70": 5,"71": 10,"72": 12,"73": 10,"74": 11,"75": 4,"76": 19,"77": 27,"78": 18,
    "79": 8,"80": 14,"t81": 5,"82": 5,"83": 21,"84": 11,"85": 14,"86": 14,"87": 10,"88": 3,"89": 9,"90": 2,"91": 22,"92": 13,"93": 28,"94": 20,"95": 25}
    mon code js :

    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
      if(params.showTooltip)
                                    {
                                            map.label.text(mapData.pathes\[code\].name+" "+code);
                                            jQuery(params.container).trigger(labelShowEvent, [map.label, code]);
                                            $.getJSON("js/annonces.json", function(obj) {
                                                    var letext = code;
                                                    var rep = obj[letext];
                                                    if (rep == 0){nbannonces="aucune annonce"}
                                                    else if (rep == 1){nbannonces="1 annonce"}
                                                    else {nbannonces=rep+" annonces"}
                                                    map.label2.text(nbannonces);
                                            });
     
     
                                            if (!labelShowEvent.isDefaultPrevented())
                                            {
                                                    map.label.show();
                                                    map.labelWidth = map.label.width();
                                                    map.labelHeight = map.label.height();
                                                    map.label2.show();
                                            }
                                    }
    je ne sait pas comment mettre le nbr d'annonces exact par département, je ne demande pas a ce que l'on me fasse le code mais juste des
    explications sur le fonctionnement et la mise en place

    merci pour votre patiente

  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
    Je suppose que l'information est dans ta bdd. Tu as donc simplement à faire une requête, mettre les résultats dans un tableau PHP et l'encoder en JSON
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Homme Profil pro
    noobies
    Inscrit en
    Décembre 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : noobies

    Informations forums :
    Inscription : Décembre 2014
    Messages : 103
    Points : 51
    Points
    51
    Par défaut
    oui bien sur, quand je suis sur la page du département j'affiche le nombre d'annonces avec cette requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $sql = "SELECT COUNT(*) AS nbr FROM phpas_ads where cityid = '$_GET[cityid]'";  
    $rws = mysql_query($sql) or die($sql.mysql_error());
    $rrws = mysql_fetch_array($rws);
    mais je n'est jamais construit de ficher json ni jamais utilisé cette fonction, peut tu prendre quelques minute pour me donner un exemple stp.

    merci

  4. #4
    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
    json_encode() est là pour ça :
    http://php.net/manual/fr/function.json-encode.php

    Au passage, on ne met jamais directement un valeur venant du navigateur dans une requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT COUNT(*) AS nbr FROM phpas_ads where cityid = '" . mysql_real_escape_string($_GET['cityid']) . "'";
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Homme Profil pro
    noobies
    Inscrit en
    Décembre 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : noobies

    Informations forums :
    Inscription : Décembre 2014
    Messages : 103
    Points : 51
    Points
    51
    Par défaut
    pour la requete j'ai donc fais comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $sql = "SELECT cityid,COUNT(*) AS nbr FROM phpas_ads  GROUP BY cityid";  
    	$rws = mysql_query($sql) or die($sql.mysql_error());
    	$rrws = mysql_fetch_array($rws);
    	while($rrws = mysql_fetch_array($rws))	
     
        { 
    	  echo $rrws['cityid'];
    	  echo '--';
    	  echo $rrws['nbr'];
    	  echo '<br/>';
    	  }
    j'ai bien le nombres d'annonces par département, par contre comment créer le tableau pour l'encoder en json ?

    désolé mais suis pas une tête

    alors je tate mais je doit pas faire comme il faut, j'ai fait comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $sql = "SELECT cityid,COUNT(*) AS nbr FROM phpas_ads  GROUP BY cityid";  
    	$rws = mysql_query($sql) or die($sql.mysql_error());
    	while($rrws = mysql_fetch_array($rws))	
     
        { 
    	  $arr = array($rrws['cityid'] => $rrws['nbr']);
    	  }
     
     
     
    echo json_encode($arr);
    j'ai : {"95":"4"} comme resultat

    mais pas tout les departements

    bon donc j'ai crée une page annonces.php

    avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $sql = "SELECT cityid,COUNT(*) AS nbr FROM phpas_ads  GROUP BY cityid";  
    	$rws = mysql_query($sql) or die($sql.mysql_error());
    	while($rrws = mysql_fetch_array($rws))	
     
        { 
    	  $arr = array($rrws['cityid'] => $rrws['nbr']);
    	  echo json_encode($arr);
    	  }
    j'ai cette affichage :
    {"1":"2"}{"2":"3"}{"3":"4"}{"4":"3"}{"6":"2"}{"7":"3"}{"8":"3"}{"9":"1"}{"11":"2"}{"13":"39"}{"14":"3"}{"15":"1"}{"16":"1"}{"17":"1"}{"18":"1"}{"19":"1"}{"21":"4"}{"23":"2"}{"24":"2"}{"25":"2"}{"26":"3"}{"27":"2"}{"28":"1"}{"29":"2"}{"30":"1"}{"31":"2"}{"32":"1"}{"33":"1"}{"34":"7"}{"35":"5"}{"36":"2"}{"37":"1"}{"39":"2"}{"40":"3"}{"42":"1"}{"43":"1"}{"44":"11"}{"45":"3"}{"47":"3"}{"48":"1"}{"49":"2"}{"50":"3"}{"51":"5"}{"52":"1"}{"53":"1"}{"54":"2"}{"55":"2"}{"56":"2"}{"57":"3"}{"58":"1"}{"59":"10"}{"60":"2"}{"61":"2"}{"63":"5"}{"65":"1"}{"66":"1"}{"67":"4"}{"68":"3"}{"69":"11"}{"71":"2"}{"73":"2"}{"74":"1"}{"75":"6"}{"76":"10"}{"78":"2"}{"79":"4"}{"80":"3"}{"82":"1"}{"83":"4"}{"84":"13"}{"85":"1"}{"86":"1"}{"87":"2"}{"88":"1"}{"92":"3"}{"93":"4"}{"94":"5"}{"95":"4"}

    comment l'afficher dans le fichier annonces.json

    merci

  6. #6
    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 faudra revoir les tableaux en PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while($rrws = mysql_fetch_array($rws))	 { 
    	  $arr[$rrws['cityid']] = $rrws['nbr'];
    }
    echo json_encode($arr);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre du Club
    Homme Profil pro
    noobies
    Inscrit en
    Décembre 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : noobies

    Informations forums :
    Inscription : Décembre 2014
    Messages : 103
    Points : 51
    Points
    51
    Par défaut
    arf quand je disait que j'etais pas une tête

    comment afficher mon resultat dans le fichier annonces.json ?

    merci

  8. #8
    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
    Tu peux faire un "faux json".
    C'est à dire, tu fais un fichier .php avec la requête, le echo etc. et tu ajoutes simplement au début header('Content-Type: application/json');
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre du Club
    Homme Profil pro
    noobies
    Inscrit en
    Décembre 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : noobies

    Informations forums :
    Inscription : Décembre 2014
    Messages : 103
    Points : 51
    Points
    51
    Par défaut
    j'ai testé comme ca et ca fonctionne, merci beaucoup

    comme quoi c'étais pas si compliqué, heureusement que toi et google mon aidé, en tout cas un grand merci

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/03/2014, 15h23
  2. Création de fichier json avec PHP
    Par versus68 dans le forum Langage
    Réponses: 1
    Dernier message: 02/06/2008, 11h56
  3. Réponses: 6
    Dernier message: 29/01/2008, 17h45
  4. [Excel] Comment lire des fichiers excel avec php?
    Par dear_rihab dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 02/11/2007, 12h38

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