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

Bibliothèques & Frameworks Discussion :

Object {0= etc


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 48
    Par défaut Object {0= etc
    Bonjour,

    Désolé pour le titre mais je ne savais vraiment pas quoi mettre ... Je vous explique mon probleme:
    Je souhaite, dans une fenetre de filtres, modifier le select affichant la liste des business Partner suivant le choix de la Régions ou du pays de l'utilisateur.

    Exemple, l'utilisateur choisis world, le select BP affiche: A,B,C,D,E,F,G
    l'utilisateur choisis EMEA( Europe Middle East & Africa), le select BP affiche: A,C,D,F

    Pour les pays, je n'ai apparemment aucun probleme, mais pour les régions, il y a des soucis :/ J'ai 3 régions: Americas, Emea et Apac, pour APAC ca marche mais pas pour les deux autres (le select est totalement vide)

    pourquoi ? O_O

    Mon titre vient du fait que j'ai utilisé firebug, et avec lui quand je vérifie mon tableau(tab_BP) contenant la liste des Business Partner en fonction du choix de l utilisateur, j'obtiens:
    • - Object { 0 = "3CORP TECHNOLOGY DIS", 1="ADVANCED SOLUCIONES ", .......} pour AMERICAS
      - Object { 0 = "2020 Mobile Nordic A", 1="ACR CENTRE ", .......} pour EMEA
      - ["ABLECOM", "ABS India Private Li", "ABS INDIA PVT LTD", 75 more...] pour APAC


    Comme vous pouvez le constater il n y a pas de Object pour APAC, or c'est le seul qui marche ... ^^

    Donc si vous avez une idée du pourquoi et du comment, partagez votre savoir svp =)


    javascripti mon code:

    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
    var tab_BP="";	
    function ChangeBPselect(paysORarea, choix){
    	if (document.layers){
    		formulaire = document.forms.ListeBP;
    	}
    	else{
    		formulaire = document.ListeBP;
    	}
    	if (choix == "select_country") {
    		url = "country=" + paysORarea.trim();
    		ajax_call(url, function(json){
    			tab_BP = json['tabBP'];
    		});	
    	}
    	if (choix == "select_area") {
    		url = "area=" + paysORarea;
    		ajax_call(url, function(json){
    			tab_BP = json['tabBP'];
    		});	
    	}
    	if (paysORarea =="world") {			
    		tab_BP = cleanArray (Col_BP_name);				
    	}   
    	formulaire.select_BPname.options.length = tab_BP.length + 1;
    	formulaire.select_BPname.options[0].value = "all";
    	formulaire.select_BPname.options[0].text = "all";
    	for (i=0; i<tab_BP.length; i++){
    		formulaire.select_BPname.options[i+1].value = tab_BP[i];
    		formulaire.select_BPname.options[i+1].text = tab_BP[i];
    	}
    	formulaire.select_BPname.options.selectedIndex = 0;
    }
    function ajax_call(what2do, callback){
    	$.ajax({	
    		type: "GET",
    		async: false,
    		dataType: "json",
    		url: "data.php?" + what2do,
    		success: function(json) {
    			callback(json);
    javascript
    })php	};

    Code php : 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
    function GetListeBPArea ($area){
    	$req_array = mysql_query('SELECT Regions, BP_name FROM `table_actis` ORDER BY `BP_name` ASC');
    	$tableau = array();
    	$temp=""; //permet d'avoir une liste et de gérer les doublons (c'est pour ca qu'on trie par BP_name)
    	while ($champs = mysql_fetch_array($req_array)) {
    		if (strtolower($area) == strtolower($champs["Regions"]))	{
    			if ($champs["BP_name"] !="" and $champs["BP_name"] !=null){
    				if ($temp==""){
    					$tableau[] = $champs["BP_name"];
    					$temp = $champs["BP_name"];
    				}
    				Else {
    					if ($temp != $champs["BP_name"]) {
    						$tableau[] = $champs["BP_name"];
    						$temp = $champs["BP_name"];
    					}
    				}
    			}
    		}
    	}
    	$tableau = array_unique($tableau);
    	return $tableau;
    }
    if (isset($_GET["area"])){
    	$area = $_GET["area"];
    	$resultat['tabBP'] = GetListeBPArea ($area);		
    }


    J'utilise Wamp avec PhpMyAdmin, les colonnes BP_name, Country et Regions sont en varchar(20) utf8_general_ci


    J'attend avec impatience votre aide parce que la je comprend vraiment pas :/

  2. #2
    Membre Expert
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Par défaut
    C'est quoi ce truc pour gérer les doublons Il y a mieux pour gérer ça au niveau SQL (je pense à distinct, group by, etc en fonction du cas) et pourquoi tu n'ajoutes pas le filtre de la région dans le where directement ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    'SELECT Regions, BP_name FROM `table_actis` WHERE  Regions = `'. strtolower(echapper($area)) .'` ORDER BY `BP_name` ASC'
     
    // ++ faire une fonction pour "echapper" la chaîne passée en GET !
    Ta boucle PHP ne sert à rien ! Laisse SQL filtrer et ramener une liste propre des résultats souhaités.
    Une fois que tout ça sera résolu, tu n'auras plus besoin du array_unique qui doit, je pense, êter al cause du problème

    Il ne faut pas que tu récupères un Object mais un Array. (comme pour APAC)

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 48
    Par défaut
    Merci de ta réponse !
    Cependant, je ne comprend pas pourquoi array_unique, marcherait pour APAC et pas pour les autres ?

    Je ne comprend pas non plus le code que tu as fourni :/
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Regions, BP_name FROM `table_actis` Regions = `'. strtolower(echapper($area)) .'` WHERE  ORDER BY `BP_name` ASC

    Ne serait ce pas plutot :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Regions, BP_name FROM `table_actis` WHERE Regions = `'. strtolower(echapper($area)) .'` ORDER BY `BP_name` ASC

    Je ne comprend pas non plus a quoi sert la fonction échapper, je fais:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $area = $_GET["area"];

    Alors strtolower($area) ne suffirait pas ?

    Et la si je fais:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $req_array = mysql_query('SELECT DISTINCT BP_name FROM `table_actis` WHERE Regions = `'. strtolower($area) .'` ORDER BY `BP_name` ASC');

    $req_array va contenir la liste des BP sans doublons !?


    Edit: c bien le req_array comme tu l as suggérer qui pose apparemment probleme car en le mettant en commentaire, mon select se remplie (mal vu qu il ya du coup des doublons, mais il se remplie)

  4. #4
    Membre Expert
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Par défaut
    marcherait pour APAC et pas pour les autres ?
    Peut-être qu'il n'y a pas de doublons pour le code région "APAC" ?

    J'ai fait une erreur de copier/coller Le WHERE est bel et bien à l'endroit où tu l'as mis.

    Alors strtolower($area) ne suffirait pas ?
    Non car qui te dit qu'un petit malin ne s'est pas amusé à mettre n'importe quoi dans $_GET["area"] ? Fais quelque recherche du côté des Injections SQL, du cross scripting. Fais au moins le minimum côté sécurité pour échapper les caractères qui doivent l'être

    Et la si je fais:

    Code :Sélectionner tout - Visualiser dans une fenêtre à part
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req_array = mysql_query('SELECT DISTINCT BP_name FROM `table_actis` WHERE Regions = `'. strtolower($area) .'` ORDER BY `BP_name` ASC');
    $req_array va contenir la liste des BP sans doublons !?
    Oui

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 48
    Par défaut
    Encore merci pour ta réponse

    J'ai essayé de faire ceci du coup:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function GetListeBPArea ($area){
    	$req_array = mysql_query('SELECT DISTINCT BP_name FROM `table_actis` WHERE Regions =`'. $area .'` ORDER BY BP_name ASC');	
    	return $req_array;
    }
    if (isset($_GET["area"])){
    	$area = $_GET["area"];
    	$resultat['tabBP'] = GetListeBPArea ($area);		
    }

    Malheureusement ca ne marche pas, pourtant quand j ai fait un test sous PhpMyAdmin (requete sql):

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT DISTINCT BP_name
    FROM table_actis
    WHERE Regions = 'AMERICAS'
    ORDER BY BP_name ASC

    ca m a bien donné la liste des BP pour AMERICAS

    Je pense que c peut etre une histoire de ' ou ` mal placé (ca m embrouille oO).

    Sinon pour l instant je veux au moins essayer sans sécurité (je prefere faire petit a petit), pour voir si ca marche deja, ce qui n est pas le cas pour l instant.
    J'ai pas mis de strtolower car dans la base de donnée les données de la colonne Regions sont en Majuscules

  6. #6
    Membre Expert
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Par défaut
    es-tu sûr que $area vaut 'AMERICAS' ?

    Si c'est tout en majuscule dans ta BDD, alors mets $area en majuscule d'office :

    En effet, attention aux quotes ...
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $req_array = mysql_query("SELECT DISTINCT BP_name FROM table_actis WHERE Regions = '". strtoupper($area) ."' ORDER BY BP_name ASC");	
    return $req_array;

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 48
    Par défaut
    J'ai fait ce que tu m as dit, et maintenant il affiche "all" dans le select (dans ma fonction je remplie la premiere ligne avec all, avant il le faisait meme pas), mais c tout et j ai vérifié avec firebug, tab_BP est vide :/

    Ne faudrait il pas faire un $req_array = array(); ou un truc du genre ?

    Sinon oui je suis sur car les regions sont choisis avec un select, or le select est composé de
    AMERICAS
    APAC
    EMEA

    quand l utilisateur choisis dans le select par exemple AMERICAS, le select de BP doit se mettre a jour (afficher que les BP de cette région: AMERICAS)

    J ai vérifié avec firebug, j ai bien:

    url ="area=AMERICAS"



    Edit: j ai carrément essayé ca:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function GetListeBPArea ($area){
    	$req_array = array();
    	$req_array = mysql_query("SELECT DISTINCT BP_name FROM table_actis WHERE Regions = 'AMERICAS' ORDER BY BP_name ASC");	
    	return $req_array;
    }

    Et ca ne marche pas non plus :/

  8. #8
    Membre Expert
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Par défaut
    Mon code n'est pas complet .... j'ai inclus le return par erreur

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $req_array = mysql_query("SELECT DISTINCT BP_name FROM table_actis WHERE Regions = '". strtoupper($area) ."' ORDER BY BP_name ASC");	
    return mysql_fetch_array($req_array);

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 48
    Par défaut
    avec : mysql_fetch_array

    ca n affiche plus rien du tout (meme plus le "all")

    ca rend fou

  10. #10
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 48
    Par défaut
    mysql_fetch_row marche pas non plus, cependant, j ai mon "all" qui s affiche tab_BP n est pas a false il est juste vide ....

  11. #11
    Membre Expert
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Par défaut
    Héhé je dois être mal réveillé ça fait longtemps que je n'ai pas fait de PHP.
    Un conseil, ne teste pas une fonction qui te passe par la tête en la claquant dans le code et en espérant que ça fonctionne. Lis la doc

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function GetListeBPArea ($area){
      $return_arr = array();
      $result = mysql_query("SELECT DISTINCT BP_name FROM table_actis WHERE Regions = '". strtoupper($area) ."' ORDER BY BP_name ASC");
     
      while($row = mysql_fetch_array($result)) {
        $return_arr[] = $row;
      }
     
      return $return_arr;
    }

    Mais évite d'utiliser cela, tourne toi plutôt vers PDO (ou une autre API).
    Exemple avec PDO. Ainsi ta requête est blindée

    Code php : 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
    if (isset($_GET['area'])){
      try {
        $return_arr = array();
        // mettre tes infos de connexion
        $BdD = new PDO('mysql:host=example.com;dbname=database', 'user', 'password');
        $stmt = $BdD->prepare("SELECT DISTINCT BP_name FROM table_actis WHERE Regions = :area ORDER BY BP_name ASC");
        $stmt->execute(array('area' => strtoupper($area)));
     
        while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
          $return_arr[] =  $row;
        }
     
        echo json_encode($return_arr);
      } catch(PDOException $e) {
        // Gérer l'exception
        // echo 'ERROR: ' . $e->getMessage();
      }
     
    }

  12. #12
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 48
    Par défaut
    Merci pour ton super suivi ^^ et ta réponse complete.

    Je vais essayé ca demain a la premiere heure, je n aurai malheureusement plus l ordi en question sous la main ce soir ....

    encore merci

  13. #13
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 48
    Par défaut
    Re!

    Aucune des deux méthodes ne marchent malheureusement.

    Les deux methodes mettent dans le select quelque chose comme:
    all
    [object Object]
    [object Object]
    [object Object]
    [object Object]
    [object Object]





    La deuxieme je l ai un peu modifié pour que ca convienne a mon code (et tu avais oublié de mettre: $area = $_GET["area"];)

    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
    if (isset($_GET['area'])){
    			try {
    				$area = $_GET["area"];
    				$return_arr = array();
    				$BdD = new PDO('mysql:host=localhost;dbname=db_actis', 'root', '');
    				$stmt = $BdD->prepare("SELECT DISTINCT BP_name FROM table_actis WHERE Regions = :area ORDER BY BP_name ASC");
    				$stmt->execute(array('area' => strtoupper($area))); 
    				while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    					$return_arr[] =  $row;
    				}
    			$resultat['tabBP'] = $return_arr;
    			} 		
    			catch(PDOException $e) {
    				echo 'ERROR: ' . $e->getMessage();
    			} 
    		}

    Firebug me dit que tab_BP est égale à:
    [Object { BP_name=""}, Object { BP_name="2020 Mobile Nordic A"}, Object { BP_name="ACR CENTRE"}, 265 more...]

    Toujours ces histoires d objets O_O

    Une idée ?

  14. #14
    Membre Expert
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Par défaut
    (et tu avais oublié de mettre: $area = $_GET["area"]
    c'était un code d'exemple, bien sûr c'est à adapter selon ton cas

    C'est niquel ! Ton PHP est robuste ainsi. Maintenant il faut modifier le JavaScript
    Tu as le réflexe Firebug, ce qui est parfait ! Un Object c'est quoi ? C'est simplement un tableau associatif. On associe une valeur (ex : "2020 Mobile Nordic") à un identifiant (ex : BP_name)
    Dans ton cas, il a cette forme (entre accolade {} ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    {
      "BP_name": "2020 Mobile Nordic A"
    }
    Dans ta requête SQL, tu ne récupères que BP_name, il n'y a donc qu'un identifiant à ton Objet. Si tu avais récupéré une autre colonne de ta table, il serait à la suite, dans ton objet. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    {
      "BP_name": "2020 Mobile Nordic A",
      "Autre_colonne": "valeur_autre_colonne"
    }
    Comme le résultat de ta requête ne ramène pas qu'un seul enregistrement, ils sont dans un tableau indicé (entre crochet [] séparés par des virgules ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [
      {
        "BP_name": ""
      },
      {
        "BP_name": "2020 Mobile Nordic A"
      },
      {
        "BP_name": "ACR CENTRE"
      }
    // etc ....
    ]
    Que nous dit l'objet donc ? Qu'il contient un identifiant : BP_name. Donc dans ton JavaScript, quand tu parcourt ton tableau, il faut que tu accèdes à cet identifiant de l'Objet ! Et non à l'Objet comme tu le fais actuellement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (i=0; i<tab_BP.length; i++){
      formulaire.select_BPname.options[i+1].value = tab_BP[i]["BP_name"];
      formulaire.select_BPname.options[i+1].text = tab_BP[i]["BP_name"];
    }
    D'ailleurs, dans la value de l'option, je te conseille de mettre un identifiant plutôt que le BP_name.

  15. #15
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 48
    Par défaut
    Haaaaaaaaaaaaaaaaa d accord :O

    Bah la ca marche apparemment en tout cas !
    Et du coup j ai l impression que ca va plus vite qu avant pour mettre a jour le select, c vraiment instantané ce qui est cool pour l'aspect fonctionnel du site.

    Juste un petit détail maintenant j ai quelque chose comme ca:

    {"tabBP":[{"BP_name":""},{"BP_name":"ABLECOM"},{"BP_name":"ABS India Private Li"}
    En gros il m enregistre une valeur: "" dans BP_name (car dans la base de données parfois le business partner n est pas indiqué, donc pour une donnée de type AMERICAS, bah parfois le champs business partner est vide...

    Je prefererai ne pas l afficher ...

    J ai voulu faire quelque chose comme ca:


    Code php : 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
    if (isset($_GET['area'])){
    	try {
    		$area = $_GET["area"];
    		$return_arr = array();
    		$BdD = new PDO('mysql:host=localhost;dbname=db_actis', 'root', '');
    		$stmt = $BdD->prepare("SELECT DISTINCT BP_name FROM table_actis WHERE Regions = :area ORDER BY BP_name ASC");
    		$stmt->execute(array('area' => strtoupper($area))); 
    		while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    		// suppression des valeurs vides
    			if ($row !="" and $row !=null and $row !=" "){
    				$return_arr[] =  $row;
    			}
    		}
    		$resultat['tabBP'] = $return_arr;
    	} 		
    	catch(PDOException $e) {
    		echo 'ERROR: ' . $e->getMessage();
    	} 
    }
    Mais ca ne marche pas


    Enfin bon c un détail, merci beaucoup ! je vais pouvoir m en inspiré pour modifier le reste de mon code en commencant par la meme chose qu'on a fait ici mais pour les pays

  16. #16
    Membre Expert
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Par défaut
    Tu n'as pas retenu la première leçon : les filtres dans la requête !!!

    Tu veux que BP_name ne soit pas vide, donc ?? Traduction SQL : and BP_name != ''
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $stmt = $BdD->prepare("SELECT DISTINCT BP_name FROM table_actis WHERE Regions = :area and BP_name != '' ORDER BY BP_name ASC")
    Vire moi ce if

  17. #17
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 48
    Par défaut
    Difficile de se passer de ses "bonnes" habitudes

    En tout cas merci beaucoup a toi, tu m as completement débloqué et meme aidé a mieux comprendre comment programmer =)

    Je met donc ce sujet en résolu, tout marche tres bien apparemment !

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/02/2014, 17h03
  2. [OL-2010] Erreur "object library invalid etc"
    Par Wanaka dans le forum VBA Outlook
    Réponses: 2
    Dernier message: 04/11/2013, 16h23
  3. Determiner si un Object est un String, une image, etc.
    Par aristeas dans le forum Langage
    Réponses: 2
    Dernier message: 11/07/2009, 20h03
  4. Documentation gratuite sur l'API Windows, COM, DCOM, OLE, etc.
    Par Community Management dans le forum Windows
    Réponses: 1
    Dernier message: 16/11/2006, 15h28

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