Résultat de requête avec PDO

Par damalaan, il y a 14 ans


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

Gregory, il y a 14 ans

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

damalaan, il y a 14 ans

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?

BlackDesign, il y a 14 ans

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, il y a 14 ans

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).....)

BlackDesign, il y a 14 ans

Ah bah dsl, je vais pouvoir t'aider