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 :

résultat de requete en PDO [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre averti

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 300
    Points
    300
    Billets dans le blog
    1
    Par défaut résultat de requete en PDO
    Bonjour,

    je fais une reqête sur une bdd PostgreSQL en PDO :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $sth = $connexion->prepare("SELECT mois, et FROM view_moy_labo order by mois");
    $sth->execute();
     
    /* Récupération de toutes les lignes d'un jeu de résultats */
    print("Récupération de toutes les lignes d'un jeu de résultats :\n");
    $result = $sth->fetcharray();
    print_r($result);
     
    echo json_encode($result);
    j'ai un résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [0] => Array ( [mois] => 1001 [0] => 1001 [et] => 1.50 [1] => 1.50 ) [1] => Array ( [mois] => 1002 [0] => 1002 [et] => 1.37 [1] => 1.37 ) [2] => Array ( [mois] => 1003 [0] => 1003 [et] => 1.51 [1] => 1.51 ) [3] => Array ( [mois] => 1004 [0] => 1004 [et] => 1.62 [1] => 1.62 ) [4] => Array ( [mois] => 1005 [0] => 1005 [et] => 1.48 [1] => 1.48 ) [5] => Array ( [mois] => 1006 [0] => 1006 [et] => 1.36 [1] => 1.36 ) [6] => Array ( [mois] => 1007 [0] => 1007 [et] => 1.36 [1] => 1.36 ) [7] => Array ( [mois] => 1008 [0] => 1008 [et] => 1.40 [1] => 1.40 ) [8] => Array ( [mois] => 1009 [0] => 1009 [et] => 1.55 [1] => 1.55 ) [9] => Array ( [mois] => 1010 [0] => 1010 [et] => 1.51 [1] => 1.51 ) [10] => Array ( [mois] => 1011 [0] => 1011 [et] => 1.46 [1] => 1.46 ) [11] => Array ( [mois] => 1012 [0] => 1012 [et] => 1.47 [1] => 1.47 ) [12] => Array ( [mois] => 1101 [0] => 1101 [et] => 1.36 [1] => 1.36 ) [13] => Array ( [mois] => 1102 [0] => 1102 [et] => 1.30 [1] => 1.30 ) [14] => Array ( [mois] => 1103 [0] => 1103 [et] => 1.35 [1] => 1.35 ) [15] => Array ( [mois] => 1104 [0] => 1104 [et] => 1.62 [1] => 1.62 ) [16] => Array ( [mois] => 1105 [0] => 1105 [et] => 1.35 [1] => 1.35 ) [17] => Array ( [mois] => 1106 [0] => 1106 [et] => 1.38 [1] => 1.38 ) [18] => Array ( [mois] => 1107 [0] => 1107 [et] => 1.38 [1] => 1.38 ) [19] => Array ( [mois] => 1108 [0] => 1108 [et] => 1.54 [1] => 1.54 ) [20] => Array ( [mois] => 1109 [0] => 1109 [et] => 1.74 [1] => 1.74 ) )
    Mon souci est juste le format du tableau renvoyer:
    il me faut qqc comme ça :
    Array(Array(1001,1.50),Array(1002,1.37),Array(1003,1.51)) et ainsi de suite

    pour à la fin récupérer un Json du type : [[1001,1.50],[1002,1.37],[1003,1.51]]

    merci d'avance

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    un fetchAll

  3. #3
    Membre averti

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 300
    Points
    300
    Billets dans le blog
    1
    Par défaut
    oups, il y a une erreur dans le code que j'ai présenté : il s'agit bien d'un fetchAll
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $sth = $connexion->prepare("SELECT mois, et FROM view_moy_labo order by mois");
    $sth->execute();
     
    /* Récupération de toutes les lignes d'un jeu de résultats */
    print("Récupération de toutes les lignes d'un jeu de résultats :\n");
    $result = $sth->fetchAll();
    print_r($result);
     
    echo json_encode($result);

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    met l'option PDO::FETCH_ASSOC par défaut il est en FETCH_BOTH, regarde bien la doc

  5. #5
    Membre averti

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 300
    Points
    300
    Billets dans le blog
    1
    Par défaut
    j'ai bien mis l'option PDO::FETCH_ASSOC

    voici maintenant le résultats des tableaux:
    php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [0] => Array ( [mois] => 1001 [et] => 1.50 ) [1] => Array ( [mois] => 1002 [et] => 1.37 ) [2] => Array ( [mois] => 1003 [et] => 1.51 ) [3] => Array ( [mois] => 1004 [et] => 1.62 ) [4] => Array ( [mois] => 1005 [et] => 1.48 ) [5] => Array ( [mois] => 1006 [et] => 1.36 ) [6] => Array ( [mois] => 1007 [et] => 1.36 ) [7] => Array ( [mois] => 1008 [et] => 1.40 ) [8] => Array ( [mois] => 1009 [et] => 1.55 ) [9] => Array ( [mois] => 1010 [et] => 1.51 ) [10] => Array ( [mois] => 1011 [et] => 1.46 ) [11] => Array ( [mois] => 1012 [et] => 1.47 ) [12] => Array ( [mois] => 1101 [et] => 1.36 ) [13] => Array ( [mois] => 1102 [et] => 1.30 ) [14] => Array ( [mois] => 1103 [et] => 1.35 ) [15] => Array ( [mois] => 1104 [et] => 1.62 ) [16] => Array ( [mois] => 1105 [et] => 1.35 ) [17] => Array ( [mois] => 1106 [et] => 1.38 ) [18] => Array ( [mois] => 1107 [et] => 1.38 ) [19] => Array ( [mois] => 1108 [et] => 1.54 ) [20] => Array ( [mois] => 1109 [et] => 1.74 ) )
    json
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [{"mois":"1001","et":"1.50"},{"mois":"1002","et":"1.37"},{"mois":"1003","et":"1.51"},{"mois":"1004","et":"1.62"},{"mois":"1005","et":"1.48"},{"mois":"1006","et":"1.36"},{"mois":"1007","et":"1.36"},{"mois":"1008","et":"1.40"},{"mois":"1009","et":"1.55"},{"mois":"1010","et":"1.51"},{"mois":"1011","et":"1.46"},{"mois":"1012","et":"1.47"},{"mois":"1101","et":"1.36"},{"mois":"1102","et":"1.30"},{"mois":"1103","et":"1.35"},{"mois":"1104","et":"1.62"},{"mois":"1105","et":"1.35"},{"mois":"1106","et":"1.38"},{"mois":"1107","et":"1.38"},{"mois":"1108","et":"1.54"},{"mois":"1109","et":"1.74"}]
    ça progresse mais c'est pas encore ça : il faut que le nom des champs disparaisse et que ça me renvoie un tableau de tableau, je n'ai pas l'impression que ce soit le cas (les {} du json ne me plaisent pas!!)

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    si il te faut pas les champs, utilise FETCH_ROW tout est dans la doc je vois pas pourquoi tu la lis pas

  7. #7
    Membre averti

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 300
    Points
    300
    Billets dans le blog
    1
    Par défaut
    1-Entre lire et comprendre, il y a une différence, or je n'ai jamais dit que je voulais pas lire la doc, en revanche si je suis sur ce forum il est fort probable que c'est parce que je n'ai pas compris!

    2-l'option FETCH_ROW de fetchAll, me renvoie une erreur et dans la doc (oui oui je l'ai lue), je n'ai pas vu de fetchAll(PDO::FETCH_ROW)

    Quelques précisions :
    dans ma bdd, ma vue est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    mois  | et 
    1001 | 1.50
    1002 | 1.37
    1003 | 1.51
    .....
    il me faut récupérer un tableau comme ça:
    Array(Array(1001,1.50),Array(1002,1.37),Array(1003,1.51)) et ainsi de suite

    pour à la fin récupérer un Json du type : [[1001,1.50],[1002,1.37],[1003,1.51]]

    Le but final étant de faire un graph avec l'api google chart interactive

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726

  9. #9
    Membre averti

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 300
    Points
    300
    Billets dans le blog
    1
    Par défaut
    nickel!
    Franchement pour un novice, la doc n'est pas simple à appréhender.
    php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [0] => Array ( [0] => 1001 [1] => 1.50 ) [1] => Array ( [0] => 1002 [1] => 1.37 ) [2] => Array ( [0] => 1003 [1] => 1.51 ) [3] => Array ( [0] => 1004 [1] => 1.62 ) [4] => Array ( [0] => 1005 [1] => 1.48 ) [5] => Array ( [0] => 1006 [1] => 1.36 ) [6] => Array ( [0] => 1007 [1] => 1.36 ) [7] => Array ( [0] => 1008 [1] => 1.40 ) [8] => Array ( [0] => 1009 [1] => 1.55 ) [9] => Array ( [0] => 1010 [1] => 1.51 ) [10] => Array ( [0] => 1011 [1] => 1.46 ) [11] => Array ( [0] => 1012 [1] => 1.47 ) [12] => Array ( [0] => 1101 [1] => 1.36 ) [13] => Array ( [0] => 1102 [1] => 1.30 ) [14] => Array ( [0] => 1103 [1] => 1.35 ) [15] => Array ( [0] => 1104 [1] => 1.62 ) [16] => Array ( [0] => 1105 [1] => 1.35 ) [17] => Array ( [0] => 1106 [1] => 1.38 ) [18] => Array ( [0] => 1107 [1] => 1.38 ) [19] => Array ( [0] => 1108 [1] => 1.54 ) [20] => Array ( [0] => 1109 [1] => 1.74 ) )
    json
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     [["1001","1.50"],["1002","1.37"],["1003","1.51"],["1004","1.62"],["1005","1.48"],["1006","1.36"],["1007","1.36"],["1008","1.40"],["1009","1.55"],["1010","1.51"],["1011","1.46"],["1012","1.47"],["1101","1.36"],["1102","1.30"],["1103","1.35"],["1104","1.62"],["1105","1.35"],["1106","1.38"],["1107","1.38"],["1108","1.54"],["1109","1.74"]]
    En revanche dernier souci :
    Pourquoi dans le json, j'ai un retour des nombres en format text alors que le tableau php le format est correct?

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par elnipal Voir le message
    nickel!
    Franchement pour un novice, la doc n'est pas simple à appréhender.
    php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [0] => Array ( [0] => 1001 [1] => 1.50 ) [1] => Array ( [0] => 1002 [1] => 1.37 ) [2] => Array ( [0] => 1003 [1] => 1.51 ) [3] => Array ( [0] => 1004 [1] => 1.62 ) [4] => Array ( [0] => 1005 [1] => 1.48 ) [5] => Array ( [0] => 1006 [1] => 1.36 ) [6] => Array ( [0] => 1007 [1] => 1.36 ) [7] => Array ( [0] => 1008 [1] => 1.40 ) [8] => Array ( [0] => 1009 [1] => 1.55 ) [9] => Array ( [0] => 1010 [1] => 1.51 ) [10] => Array ( [0] => 1011 [1] => 1.46 ) [11] => Array ( [0] => 1012 [1] => 1.47 ) [12] => Array ( [0] => 1101 [1] => 1.36 ) [13] => Array ( [0] => 1102 [1] => 1.30 ) [14] => Array ( [0] => 1103 [1] => 1.35 ) [15] => Array ( [0] => 1104 [1] => 1.62 ) [16] => Array ( [0] => 1105 [1] => 1.35 ) [17] => Array ( [0] => 1106 [1] => 1.38 ) [18] => Array ( [0] => 1107 [1] => 1.38 ) [19] => Array ( [0] => 1108 [1] => 1.54 ) [20] => Array ( [0] => 1109 [1] => 1.74 ) )
    json
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     [["1001","1.50"],["1002","1.37"],["1003","1.51"],["1004","1.62"],["1005","1.48"],["1006","1.36"],["1007","1.36"],["1008","1.40"],["1009","1.55"],["1010","1.51"],["1011","1.46"],["1012","1.47"],["1101","1.36"],["1102","1.30"],["1103","1.35"],["1104","1.62"],["1105","1.35"],["1106","1.38"],["1107","1.38"],["1108","1.54"],["1109","1.74"]]
    En revanche dernier souci :
    Pourquoi dans le json, j'ai un retour des nombres en format text alors que le tableau php le format est correct?
    non ils sont en string fait un var_dump

  11. #11
    Membre averti

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 300
    Points
    300
    Billets dans le blog
    1
    Par défaut
    effectivement!!
    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
    array
      0 => 
        array
          0 => string '1001' (length=4)
          1 => string '1.50' (length=4)
      1 => 
        array
          0 => string '1002' (length=4)
          1 => string '1.37' (length=4)
      2 => 
        array
          0 => string '1003' (length=4)
          1 => string '1.51' (length=4)
      3 => 
        array
          0 => string '1004' (length=4)
          1 => string '1.62' (length=4)
      4 => 
        array
          0 => string '1005' (length=4)
          1 => string '1.48' (length=4)
    mince alors que j'ai vérifier dans la bdd, c'est bien en numérique ?

  12. #12
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    tu vas devoir utiliser bindColumn, ou alors enlèver l’émulation des requêtes en mettant le PDO::ATTR_EMULATE_PREPARES sur false

  13. #13
    Membre averti

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 300
    Points
    300
    Billets dans le blog
    1
    Par défaut
    j'ai utilisé bindvalue
    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
    $connexion = new PDO('pgsql:host='.$PARAM_hote.';port='.$PARAM_port.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
     
     
    $mois = 1112;
    $et =0;
    $sth = $connexion->prepare("SELECT mois, et FROM view_moy_labo WHERE trn_esp=1 and  mois < :mois and et > :et order by mois");
     
    $sth->bindValue(':mois', $mois, PDO::PARAM_INT);
    $sth->bindValue(':et', $et, PDO::PARAM_INT);
     
    $sth->execute();
     
    $result = $sth->fetchAll(PDO::FETCH_NUM);
     
    var_dump($result);
    echo json_encode($result);
    et c'est tjs en string
    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
    array
      0 => 
        array
          0 => string '1001' (length=4)
          1 => string '1.50' (length=4)
      1 => 
        array
          0 => string '1002' (length=4)
          1 => string '1.37' (length=4)
      2 => 
        array
          0 => string '1003' (length=4)
          1 => string '1.51' (length=4)
      3 => 
        array
          0 => string '1004' (length=4)
          1 => string '1.62' (length=4)
      4 => 
        array
          0 => string '1005' (length=4)
          1 => string '1.48' (length=4)

  14. #14
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    ca marche dans le cas ou tu fais un fetch pas un fetchAll,

  15. #15
    Membre averti

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 300
    Points
    300
    Billets dans le blog
    1
    Par défaut
    Le problème du fetch c'est qu'il ne me renvoie qu'une ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $mois = 1012;
    $et =0;
    $sth = $connexion->prepare("SELECT mois, et FROM view_moy_labo WHERE trn_esp=1 and  mois < :mois and et > :et order by mois");
     
    $sth->bindValue(':mois', $mois, PDO::PARAM_INT);
    $sth->bindValue(':et', $et, PDO::PARAM_INT);
     
    $sth->execute();
     
    $result = $sth->fetch(PDO::FETCH_NUM);
     
    var_dump($result);
    echo json_encode($result);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    array
      0 => string '1001' (length=4)
      1 => string '1.50' (length=4)
    ["1001","1.50"]
    et tjs en string !!

  16. #16
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    bindColumn, pas bindValue ...

  17. #17
    Membre averti

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 300
    Points
    300
    Billets dans le blog
    1
    Par défaut
    toujours pareil, impossible de passer de string à decimal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $sth = $connexion->prepare("SELECT prm_id, val_temperature FROM tbl_valeur_val where prm_id=1")
     
    $sth->bindColumn('val_temperature',$temp,PDO::PARAM_INT); 
     
    $sth->execute();
     
     
    $result = $sth->fetchAll(PDO::FETCH_NUM);
     
    var_dump($result);
     
    echo json_encode($result);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    array
      0 => 
        array
          0 => int 1
          1 => string '44.0' (length=4)
      1 => 
        array
          0 => int 1
          1 => string '44.2' (length=4)
      2 => 
        array
          0 => int 1
          1 => string '43.9' (length=4)

  18. #18
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    au pire, si rien ne fonctionne tu appliques ceci sur ton résultat final :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $a = array('12.35', '45.45', array('17.36', '85'));
    //array_walk_recursive($a, function(&$v, $k) { $v = floatval($v); });
    array_walk_recursive($a, function(&$v, $k) { $v *= 1.0; });
    print_r($a);
    ?>
    Tu auras ainsi que des valeurs numériques.

  19. #19
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par rawsrc Voir le message
    Bonjour,

    au pire, si rien ne fonctionne tu appliques ceci sur ton résultat final :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $a = array('12.35', '45.45', array('17.36', '85'));
    //array_walk_recursive($a, function(&$v, $k) { $v = floatval($v); });
    array_walk_recursive($a, function(&$v, $k) { $v *= 1.0; });
    print_r($a);
    ?>
    Tu auras ainsi que des valeurs numériques.
    pourquoi pas un floatval direct dans le callback ?

  20. #20
    Membre averti

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 300
    Points
    300
    Billets dans le blog
    1
    Par défaut
    merci ça fonctionne bien, même si j'avoue que je ne comprends pas comment !

    j'ai également des tableaux qui vont être du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array(array("2011-12-02 10:00:00","43"), array("2011-12-02 10:05:00","45")....)
    dans ce cas de format date, il faut que le premier élément soit en date et le deuxième en numérique

    et d'après la doc array_walk_recursive s'applique a tous les éléments du tableau, donc problème!?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [AC-97] Afficher résultat de requête dans une zone de texte
    Par paflolo dans le forum IHM
    Réponses: 21
    Dernier message: 28/04/2022, 13h57
  2. [PDO] résultat d'une requete en PDO
    Par gorgoroth dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 13/02/2008, 11h19
  3. mauvais résultat de requete sous mysql
    Par temperature dans le forum Requêtes
    Réponses: 5
    Dernier message: 14/04/2006, 16h54
  4. Utilisation d'un résultat de requete dans VBA
    Par marie10 dans le forum Access
    Réponses: 3
    Dernier message: 30/01/2006, 11h29
  5. résultat de requete dans un formulaire
    Par tomo0013 dans le forum Access
    Réponses: 3
    Dernier message: 17/09/2005, 15h53

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