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 :

SQL - PHP - Rêquetes


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2019
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 46
    Points : 15
    Points
    15
    Par défaut SQL - PHP - Rêquetes
    Bonjour,

    Actuellement, je suis à la recherche de solution

    Au lieu de faire 10000 requêtes et 10000 pages. Je préfère utiliser les paramètres !

    Alors :

    - J'aimerais avoir deux paramètre :
    1 Paramètre -> Pour le temps.
    1 Paramètre -> Choisir le capteur : (CO,CO2,LUX,BAT,HALL,LP,PIR,STR,HUM,PRES,TC)
    Le premier paramètre est déjà fais.
    Le deuxième non. (J'ai du mal avec celui là)


    Par exemple, je voudrais choisir le capteur CO2 avec toute ces informations (value) dans le mois = 4 ou semaine = 2 :

    172.16.xx.xx/sensor/getTranslation.php?periode=4CO

    4 = Concernant la période = Mois
    CO = Concernant le capteur que j'aimerais avoir

    Voici mon code que j'ai déjà réaliser :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    <?php
    include 'Database.php';
     
    $database = new Database();
    $con = $database->getConnection();
     
    // Par défaut on prend la dernière heure
    $periode = 'HOUR';
    if( !empty( $_GET['periode'] ) ) {
        switch( $_GET['periode'] ) {
            case 1:
                $periode = 'HOUR';
                break;
            case 2:
                $periode = 'DAY';
                break;
            case 3:
                $periode = 'WEEK';
                break;
            case 4:  
                $periode = 'MONTH';
                break;
            case 5:
                $periode = 'YEAR';
                break;
        } 
    }
     
    $sql = "SELECT timestamp,sensor,value from sensorparser Where timestamp > CURDATE() - INTERVAL 1 ".$periode;
     
    $result = $con->query($sql)->fetchAll(PDO::FETCH_ASSOC);
     
    header("content-type:application/json");
     
    $value = str_replace("filename", "fileName", json_encode($result));
    $value = str_replace("folderdirectory", "folderDirectory", $value);
    $value = str_replace("lastchange", "lastChange", $value);
     
    echo $value;
     
    $database->closeConnection();
    $database = null;
    $con = null;
    exit();

    Merci d'avance

    Cordialement

  2. #2
    Membre confirmé Avatar de ma5t3r
    Homme Profil pro
    Développeur freelance
    Inscrit en
    Mai 2015
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2015
    Messages : 320
    Points : 492
    Points
    492
    Par défaut
    Salut,
    Si j'ai bien compris, tu concatènes tes paramètres.

    Pas bon, pas bon ;-)

    Choisis plutôt de les passer tels quels dans l'URL
    172.16.xx.xx/sensor/getTranslation.php?periode=month&capteur=co

    Tu testes si les paramètres sont passés et tu crées ta requête SQL.

  3. #3
    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
    salut,

    tu passes plusieurs paramètres à ton url :
    172.16.xx.xx/sensor/getTranslation.php?periode=4&capteur=CO
    ensuite dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $p = isset($_GET['periode']) ? (int)$_GET['periode'] : 1;
    $periode = [1 => 'HOUR', 2 => 'DAY', 3 => 'WEEK', 4 => 'MONTH', 5 => 'YEAR'][$p] ?? 'HOUR';
     
    $caps = [
        'CO' => 'blabla', 'CO2' => 'blabla', 'LUX'=> 'blabla', 'BAT' => 'blabla', 'HALL' => 'blabla', 'LP' => 'blabla', 
        'PIR' => 'blabla', 'STR' => 'blabla', 'HUM' => 'blabla', 'PRES' => 'blabla', 'TC' => 'blabla'
    ];
    $c = $_GET['capteur'] ?? 'TC';
    $capteur = $caps[$c] ?? 'TC';
    Tu dois toujours tout vérifier, contrôler dès qu'il s'agit de données en provenance de l'extérieur

  4. #4
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2019
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 46
    Points : 15
    Points
    15
    Par défaut
    Ok, mais les value, sensor, time... je les récupères depuis une base de donnée. Les données ne sont pas en dure.
    C'est compliqué pour moi cette partie si possible de compléter avec mon code pour voir la diff

    PS : j'affiche en Json, sur ma page.

    Merci d'avance

  5. #5
    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
    quelque chose dans ce genre :
    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
    22
    23
    24
    25
    26
    27
    28
    29
    // à partir d'une url de ce genre :
    // 172.16.xx.xx/sensor/getTranslation.php?periode=4&capteur=CO
     
    include 'Database.php';
     
    $db  = new Database();
    $cnx = $database->getConnection();
     
    $p       = isset($_GET['periode']) ? (int)$_GET['periode'] : 1;
    $periode = [1 => 'HOUR', 2 => 'DAY', 3 => 'WEEK', 4 => 'MONTH', 5 => 'YEAR'][$p] ?? 'HOUR';
     
    $caps = [
        'CO' => 'blabla', 'CO2' => 'blabla', 'LUX'=> 'blabla', 'BAT' => 'blabla', 'HALL' => 'blabla', 'LP' => 'blabla',
        'PIR' => 'blabla', 'STR' => 'blabla', 'HUM' => 'blabla', 'PRES' => 'blabla', 'TC' => 'blabla'
    ];
    $c       = $_GET['capteur'] ?? 'TC';
    $capteur = $caps[$c] ?? 'TC';
     
    $sql = <<<sql
    SELECT `timestamp`, `sensor`, `value` 
      FROM sensorparser 
     WHERE `timestamp` > CURDATE() - INTERVAL 1 {$periode}
           AND `sensor` = {$capteur} 
    sql;
     
    $data = $cnx->query($sql)->fetchAll(PDO::FETCH_ASSOC);
    $json = json_encode($data);
     
    echo strtr($json, ['filename' => 'fileName', 'folderdirectory' => 'folderDirectory', 'lastchange' => 'lastChange']);

  6. #6
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2019
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 46
    Points : 15
    Points
    15
    Par défaut
    Alors après implémentation dans mon serveur et en modifiant quelques variable, j'ai toujours un problème que je ne perçois pas :
    - Et pourquoi 'BlaBla' ?

    Le code : Page Translation.

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php
    // à partir d'une url de ce genre :
    // 172.16.xx.xx/sensor/getTranslation.php?periode=4&capteur=CO
     
    include 'Database.php';
     
    $database  = new Database();
    $con = $database->getConnection();
     
    $p       = isset($_GET['periode']) ? (int)$_GET['periode'] : 1;
    $periode = [1 => 'HOUR', 2 => 'DAY', 3 => 'WEEK', 4 => 'MONTH', 5 => 'YEAR'][$p] ?? 'HOUR';
     
    $caps = [
        'CO' => 'blabla', 'CO2' => 'blabla', 'LUX'=> 'blabla', 'BAT' => 'blabla', 'HALL' => 'blabla', 'LP' => 'blabla',
        'PIR' => 'blabla', 'STR' => 'blabla', 'HUM' => 'blabla', 'PRES' => 'blabla', 'TC' => 'blabla'
    ];
    $c       = $_GET['capteur'] ?? 'TC';
    $capteur = $caps[$c] ?? 'TC';
     
    $sql = <<<sql
    SELECT `timestamp`, `sensor`, `value` 
      FROM sensorparser 
     WHERE `timestamp` > CURDATE() - INTERVAL 1 {$periode}
           AND `sensor` = {$capteur} 
    sql;
     
    $data = $con->query($sql)->fetchAll(PDO::FETCH_ASSOC);
    $json = json_encode($data);
     
    echo strtr($json, ['filename' => 'fileName', 'folderdirectory' => 'folderDirectory', 'lastchange' => 'lastChange']);
    Résultat :
    http://xxxx.xxxx.xxx.xxx:xxxx/sensor...e=4&capteur=CO

    Nom : eRREUR.PNG
Affichages : 46
Taille : 23,4 Ko

    Le code : Page Database :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <?php
     
    class Database {
     
        private $host = "xx.xxx.xxx.xx";
        private $username = "xxxx";
        private $password = "xxxx";
        private $database = "xxxx";
     
        public $connection;
     
        public function getConnection() {
            $this->connection = null;
     
            try {
                $this->connection = new PDO("mysql:host=".$this->host.";dbname=".$this->database, $this->username, $this->password);
                $this->connection->exec("set names utf8");
            } catch (PDOException $exception) {
                echo "Error: ".$exception->getMessage();
                die();
            }
     
     
     
            return $this->connection;
     
        }
     
        public function closeConnection() {
            $this->connection = null;
        }
     
    }
     
    ?>
    Merci d'avance

    Et désolé pour les questions...

  7. #7
    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
    le message d'erreur veut juste dire que la requête à échouée.
    Tu sais qu'il faut éviter absolument d'utiliser les mots réservés SQL.
    TIMESTAMP et VALUE sont réservés par SQL, tu devrais renommer toutes ces colonnes pour commencer.
    Ensuite quand tu présentes la requête fais un simple echo $sql; pour vérifier quelle tête elle a.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2019
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 46
    Points : 15
    Points
    15
    Par défaut
    J'ai bien compris, mais malheureusement je ne peux pas modifier les champs.
    Je dois les gardés tel quel.

    Y-a-t-il un autre moyen ?

    Car avec mes autres pages et requêtes tout marche très bien..

    Merci d'avance

  9. #9
    Membre confirmé Avatar de ma5t3r
    Homme Profil pro
    Développeur freelance
    Inscrit en
    Mai 2015
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2015
    Messages : 320
    Points : 492
    Points
    492
    Par défaut
    Y-a-t-il un autre moyen ?
    Oui, il suffit d'entourer les noms de colonnes par des quotes inversées (`)

  10. #10
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2019
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 46
    Points : 15
    Points
    15
    Par défaut
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php
    // à partir d'une url de ce genre :
    // 172.16.xx.xx/sensor/getTranslation.php?periode=4&capteur=CO
     
    include 'Database.php';
     
    $database  = new Database();
    $con = $database->getConnection();
     
    $p       = isset($_GET['periode']) ? (int)$_GET['periode'] : 1;
    $periode = [1 => 'HOUR', 2 => 'DAY', 3 => 'WEEK', 4 => 'MONTH', 5 => 'YEAR'][$p] ?? 'HOUR';
     
    $caps = [
        'CO' => 'blabla', 'CO2' => 'blabla', 'LUX'=> 'blabla', 'BAT' => 'blabla', 'HALL' => 'blabla', 'LP' => 'blabla',
        'PIR' => 'blabla', 'STR' => 'blabla', 'HUM' => 'blabla', 'PRES' => 'blabla', 'TC' => 'blabla'
    ];
    $c       = $_GET['capteur'] ?? 'TC';
    $capteur = $caps[$c] ?? 'TC';
     
    $sql = <<<sql
    SELECT `timestamp`, `sensor`, `value` 
      FROM sensorparser 
     WHERE `timestamp` > CURDATE() - INTERVAL 1 {$periode}
           AND `sensor` = {$capteur} 
    sql;
     
    $data = $con->query($sql)->fetchAll(PDO::FETCH_ASSOC);
    $json = json_encode($data);
     
    echo strtr($json, ['filename' => 'fileName', 'folderdirectory' => 'folderDirectory', 'lastchange' => 'lastChange']);
    Mais c'est déjà fais sur les noms des colonnes ci-dessus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql = <<<sql 
    SELECT ..
    Désolé je rame un peu...

  11. #11
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2019
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 46
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    Avez-vous des nouvelles concernant cette discutions ?

    Je me suis renseigner et il parait que je n'affiche pas les erreurs PDO.. Hmmm..

    Merci d'avance

    Cordialement

  12. #12
    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
    salut,

    faut chercher un peu, PDO c'est je pense un des éléments de PHP qui a été le plus souvent abordé à travers des centaines et des centaines de questions.
    Tu dois juste paramétrer l'ouverture de la connexion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $this->connection = new PDO("mysql:host=".$this->host.";dbname=".$this->database, $this->username, $this->password, [
        \PDO::ATTR_ERRMODE            => \PDO::ERRMODE_EXCEPTION,
        \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC,
        \PDO::ATTR_EMULATE_PREPARES   => false
    ]);
    Pour avoir les erreurs.

  13. #13
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2019
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 46
    Points : 15
    Points
    15
    Par défaut
    Bonsoir,

    Comme indiquer un peu plus au, j'ai déjà ça : dans ma page Database.php :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <?php
     
    class Database {
     
        private $host = "xxxxxx";
        private $username = "yyyyy";
        private $password = "yyyy";
        private $database = "yyyyyyyyyyyyyyyy";
     
        public $connection;
     
        public function getConnection() {
            $this->connection = null;
     
            try {
                $this->connection = new PDO("mysql:host=".$this->host.";dbname=".$this->database, $this->username, $this->password);
                $this->connection->exec("set names utf8");
            } catch (PDOException $exception) {
                echo "Error: ".$exception->getMessage();
                die();
            }
     
     
     
            return $this->connection;
     
        }
     
        public function closeConnection() {
            $this->connection = null;
        }
     
    }
     
    ?>
    Je me suis perdus dans tout mon code..

  14. #14
    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
    copie-colle ma ligne à la place de la tienne.

  15. #15
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2019
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2019
    Messages : 46
    Points : 15
    Points
    15
    Par défaut
    Ok, c'est fait :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <?php
     
    class Database {
     
        private $host = "";
        private $username = "";
        private $password = "";
        private $database = "";
     
        public $connection;
     
        public function getConnection() {
            $this->connection = null;
     
            $this->connection = new PDO("mysql:host=".$this->host.";dbname=".$this->database, $this->username, $this->password, [
        \PDO::ATTR_ERRMODE            => \PDO::ERRMODE_EXCEPTION,
        \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC,
        \PDO::ATTR_EMULATE_PREPARES   => false
    ]);
     
     
     
            return $this->connection;
     
        }
     
        public function closeConnection() {
            $this->connection = null;
        }
     
    }
     
    ?>
    Résultats :
    Nom : PDO.PNG
Affichages : 49
Taille : 48,5 Ko

  16. #16
    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
    Parfait, essaie avec ce code :
    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
    22
    23
    24
    $database  = new Database();
    $con = $database->getConnection();
     
    $p       = isset($_GET['periode']) ? (int)$_GET['periode'] : 1;
    $periode = [1 => 'HOUR', 2 => 'DAY', 3 => 'WEEK', 4 => 'MONTH', 5 => 'YEAR'][$p] ?? 'HOUR';
     
    $caps = ['CO', 'CO2', 'LUX', 'BAT', 'HALL', 'LP', 'PIR', 'STR', 'HUM', 'PRES', 'TC'];
    if (isset($_GET['capteur']) && in_array($_GET['capteur'], $caps, true)) {
        $capteur = $_GET['capteur'];
    } else {
        $capteur = 'TC'; // capteur par défaut
    }
     
    $sql = <<<sql
    SELECT `timestamp`, `sensor`, `value` 
      FROM sensorparser 
     WHERE `timestamp` > CURDATE() - INTERVAL 1 {$periode}
           AND `sensor` = '{$capteur}' 
    sql;
     
    $data = $con->query($sql)->fetchAll(PDO::FETCH_ASSOC);
    $json = json_encode($data);
     
    echo strtr($json, ['filename' => 'fileName', 'folderdirectory' => 'folderDirectory', 'lastchange' => 'lastChange']);

Discussions similaires

  1. [SQL] PhP Variable
    Par boo64 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 03/05/2006, 14h49
  2. [MySQL] Fonctions calculs SQL/PHP pour projet football
    Par spamyx dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/04/2006, 16h16
  3. [MySQL] Requete SQL PHP
    Par CaptainChoc dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 22/10/2005, 16h13
  4. [MySQL] Sql-Php / Requete/ Afficher l'age (aide nécessaire please)
    Par Odilon dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 21/10/2005, 09h21
  5. [SQL+php] requete a trouver
    Par theclear dans le forum Langage SQL
    Réponses: 6
    Dernier message: 11/10/2004, 09h50

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