Bonjour,
j'ai fait une requête PDO pour récupérer des données afin de faire un graph avec google chart interactive.

$connexion = new PDO('pgsql:host='.$PARAM_hote.';port='.$PARAM_port.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
$sth = $connexion->prepare("SELECT val_canal, val_valeur FROM tbl_valeur_val");
$sth->execute();
print("Récupération de toutes les lignes d'un jeu de résultats PDO::FETCH_ASSOC:\n");
$result = $sth->fetchAll(PDO::FETCH_NUM);
var_dump($result);
echo json_encode($result);

or mon champ val_valeur étant un décimal, ça me le renvoie en string

array
  0 => 
    array
      0 => int 1
      1 => string '43.94' (length=5)
  1 => 
    array
      0 => int 2
      1 => string '2.75' (length=4)

ce qui me donne un json comme ça:

[1,"43.94"],[2,"2.75"],[3,"18.64"]]

et pour l'api google, il faut du numérique.
Comment don récupérer tout en numérique?

merci d'avance

6 réponses


Il existe la fonction floatval qui convertit ta chaine en float si tu veux

damalaan
Auteur

oui mais c'est toute la "deuxième colonne" de mon tableau qui doit passer en numérique, ce n'est pas qu'une valeur!

N'est-il pas possible de sortir au même format que ce qui est stockée dans la base?

Bonjour, essaie de passer de PDO::FETCH_NUM à PDO::FETCH_ASSOC.
Je ne mit connait pas énormément, mais moi j'utilise sa : PDO::FETCH_ASSOC

damalaan
Auteur

le problème du FETCH_ASSOC c'est que ça me renvoi un JSON inexploitable du genre :
{"prm_id":1,"val_temperature":"44.0"},{"prm_id":1,"val_temperature":"44.2"},{"prm_id":1,"val_temperature":"43.9"},{"prm_id":1,"val_temperature":"44.3"},{"prm_id":1,"val_temperature":"44.3"}]

Et pour utiliser l'api google chart il me faut un JSON dans ce format là : [1,44.0],[1,44.2],[1,43.9],[1,44.3],[1,44.3]] soit un array php comme ça : array(array(1,44.0),array(1,44.2),array(1,43.9).....)

Ah bah dsl, je vais pouvoir t'aider

damalaan
Auteur

ça y est je suis venu à bout de mon problème
pour faire simple je mets le lien vers ma solution
http://www.developpez.net/forums/d1158462/php/php-sgbd/pdo/resultat-requete-pdo/

merci qd même :)