Bonjour,

Voila je rencontre un petit problème avec mon code.

il m'affiche les températures suivie de /r ex "43.5\r" or je veux seulement mes températures ex "43.5".

<?php
require_once 'inc/db.php';
$json=[];
$stmt=$pdo->prepare("SELECT * FROM serveur");
$stmt->execute();
while($row=$stmt->fetch(PDO::FETCH_ASSOC)){
  extract($row);
  $toto[]=$temp;
}
echo json_encode($json);
?>

Merci d'avance

2 réponses


Lartak
Réponse acceptée

Bonsoir.
À nous montrer du code, ce serait bien qu'il soit un minimum fonctionnel.

  • Tu initialises la variable $json que tu renvois plus bas, sauf que tu ne la remplie à aucun moment, tu renvoie donc une variable vide.
  • Tu veux remplir la variable $toto, sauf que tu ne l'initialise à aucun moment et tu ne l'utilises pas pour autant après.
  • Quel est l'intérêt d'extraire une variable, si tu n'utilises qu'une seule de ses clés, sans oublier que si tu ne comptes utiliser qu'un champ, pourquoi est-ce que tu ne récupères pas que celui-ci dans ta requête SQL ?
  • Autre chose aussi, les requêtes préparées sont inutiles si tu ne passe aucune valeur particulière dans ta requête SQL

Sinon pour répondre à ton problème, tu peux par exemple utiliser la fonction rtrim, qui te permettra de récupérer l'ensemble de la chaîne ormis les caractères \r en fin de chaîne.
Exemple :

<?php
require_once 'inc/db.php';
$json = [];
$stmt = $pdo->query("SELECT temp FROM serveur");
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
  $json[] = rtrim($row['temp'], "\r");
}
echo json_encode($json);

trim ta variable ;)

@pluche

Pierre