Tableau multi dimensionnel
ceda13
Messages postés
88
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je cherche à relever pas mal de données sur une BDD et les ranger dans un tableau multi dimensionnel pour les afficher ensuite.
Je poste les codes côté javascript et côté PHP je pense avoir une erreur dans mes empilements de tableau. Est-ce que vous voyez quelque chose d'anormal svp ?
Javascript :
PHP :
Résultat :

Console :

Je cherche à relever pas mal de données sur une BDD et les ranger dans un tableau multi dimensionnel pour les afficher ensuite.
Je poste les codes côté javascript et côté PHP je pense avoir une erreur dans mes empilements de tableau. Est-ce que vous voyez quelque chose d'anormal svp ?
Javascript :
$.getJSON("php/controleur.php", {action: "getListeMesures", debut: dateDeb, fin: dateFin, ID: site}) .done(function (data, textStatus, jqXHR) { $.each(data, function (index, ligne) { $("#tableauMesures>tbody:last").append("<tr><td>" + ligne.date + "</td><td>" + ligne.temperature + "°C</td><td>" + ligne.pression + "hPa</td><td>" + ligne.hygrometrie + "%</td></tr>"); });
PHP :
if (filter_input(INPUT_SERVER, 'REQUEST_METHOD') == 'GET') { $action = filter_input(INPUT_GET, "action"); switch ($action) { case 'getListeMesures': $debut = filter_input(INPUT_GET, 'debut'); $fin = filter_input(INPUT_GET, 'fin'); $IDSITE = filter_input(INPUT_GET, 'ID'); getListeMesures($debut, $fin,$IDSITE); break; case 'getPeriode': getPeriodeMinMax(); break; } } function getListeMesures($debut, $fin,$IDSITE) { try { // connexion à la base de données $bdd = connexionBdd(); $requete = $bdd->prepare("SELECT valeur FROM mesure WHERE id_capteur<5 AND id_site=:id AND (date_mesure BETWEEN :deb AND :fin )ORDER BY date_mesure DESC;"); $requete->bindParam(":id", $id); $requete->bindParam(":deb", $debut); $requete->bindParam(":fin", $fin); // execution de la requete $requete->execute() or die(print_r($requete->errorInfo())); $temperature=array(); while ($ligne = $requete->fetch()){ array_push($temperature,array( 'temperature' => $ligne['valeur'])); } $requete->closeCursor(); $bdd = connexionBdd(); $requete = $bdd->prepare("SELECT valeur FROM mesure WHERE id_capteur>8 AND id_site=:id AND (date_mesure BETWEEN :deb AND :fin )ORDER BY date_mesure DESC;"); $requete->bindParam(":id", $id); $requete->bindParam(":deb", $debut); $requete->bindParam(":fin", $fin); // execution de la requete $requete->execute() or die(print_r($requete->errorInfo())); $hygrometrie=array(); while ($ligne = $requete->fetch()){ array_push($hygrometrie,array( 'hygrometrie' => $ligne['valeur'])); } $requete->closeCursor(); $bdd = connexionBdd(); $requete = $bdd->prepare("SELECT valeur FROM mesure WHERE id_capteur>4 AND id_capteur<9 AND id_site=:id AND (date_mesure BETWEEN :deb AND :fin )ORDER BY date_mesure DESC;"); $requete->bindParam(":id", $id); $requete->bindParam(":deb", $debut); $requete->bindParam(":fin", $fin); // execution de la requete $requete->execute() or die(print_r($requete->errorInfo())); $pression=array(); while ($ligne = $requete->fetch()){ array_push($pression,array( 'pression' => $ligne['valeur'])); } $requete->closeCursor(); $bdd = connexionBdd(); $requete = $bdd->prepare('SELECT DATE_FORMAT(date_mesure,"%d/%m/%Y %H:%i:%s") as datee FROM mesure WHERE id_site=:id AND (date_mesure BETWEEN :deb AND :fin )ORDER BY date_mesure DESC;'); $requete->bindParam(":id", $id); $requete->bindParam(":deb", $debut); $requete->bindParam(":fin", $fin); // execution de la requete $requete->execute() or die(print_r($requete->errorInfo())); $date=array(); while ($ligne = $requete->fetch()){ array_push($date,array( 'date' => $ligne['datee'])); } $requete->closeCursor(); $tabMesures = array('date' => $date, 'temperature' => $temperature, 'pression' => $pression, 'hygrometrie' => $hygrometrie); // libération de la ressource //envoyer les données au format json header('Content-Type: application/json'); echo json_encode($tabMesures, JSON_NUMERIC_CHECK); } catch (PDOException $e) { print "Erreur !: " . $e->getMessage() . "<br/>"; die(); } }
Résultat :

Console :

Configuration: Windows / Chrome 91.0.4472.77
A voir également:
- Tableau multi dimensionnel
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Imprimer tableau excel sur une page - Guide
3 réponses
Bonjour,
Je t'ai déjà dit de virer les " OR DIE" et d'utiliser ceci :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
En plus, tu n'as pas besoin de faire une boucle avec un fetch pour stocker les données dans un array...; un fetchAll suffirait.
https://www.php.net/manual/fr/pdostatement.fetchall.php
Si malgré ça, tes array restent vides.. il faudra se pencher sur tes requêtes qui ne retournent peut-être rien.. tout simplement...
Je t'ai déjà dit de virer les " OR DIE" et d'utiliser ceci :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
En plus, tu n'as pas besoin de faire une boucle avec un fetch pour stocker les données dans un array...; un fetchAll suffirait.
https://www.php.net/manual/fr/pdostatement.fetchall.php
Si malgré ça, tes array restent vides.. il faudra se pencher sur tes requêtes qui ne retournent peut-être rien.. tout simplement...
Qu'est ce qui ne te plait pas dans les OR DIE ?
Bon alors en fait j'avais fait une erreur de nom de variable ($id à la place de $IDSITE). Maintenant mes tableaux se remplissent bien mais pas comme je veux.
Je voudrais me retrouver avec un tableau "tabMesures"comme ça à la fin:
[{date: "xxxxx", temperature: xxx, pression: xxx, hygrometrie: xxx}, {date: "xxxxx", temperature: xxx, pression: xxx, hygrometrie: xxx},….......]
Comment je peux faire ?
Bon alors en fait j'avais fait une erreur de nom de variable ($id à la place de $IDSITE). Maintenant mes tableaux se remplissent bien mais pas comme je veux.
Je voudrais me retrouver avec un tableau "tabMesures"comme ça à la fin:
[{date: "xxxxx", temperature: xxx, pression: xxx, hygrometrie: xxx}, {date: "xxxxx", temperature: xxx, pression: xxx, hygrometrie: xxx},….......]
Comment je peux faire ?