Simplifier une requete sur GraphWeather PHP

Répondre
siegfried
Membre
Messages : 44
Inscription : lun. juil. 31, 2006 1:08 pm
Contact :

Message par siegfried »

J'ouvre un nouveau post car je ne sais comment modifier cette requete:

Code : Tout sélectionner

$sql="SELECT `";
$sql.=$MYSQL_FIELD['absolute_pressure']."`,`";
$sql.=$MYSQL_FIELD['outdoor_humidity']."`,`";
$sql.=$MYSQL_FIELD['outdoor_temperature']."`,`";
$sql.=$MYSQL_FIELD['dew_point']."`,`";
$sql.=$MYSQL_FIELD['wind_chill']."`,`";
$sql.=$MYSQL_FIELD['wind_direction']."`,`";
$sql.=$MYSQL_FIELD['wind_speed']."`,`";
$sql.=$MYSQL_FIELD['total_rainfall']."`,`";
$sql.=$MYSQL_FIELD['timestamp']."`";
$sql.=" FROM ".$MYSQL_TABLE." WHERE ".$MYSQL_FIELD['timestamp']."<='".$StopDate."' AND ".$MYSQL_FIELD['timestamp'].">='".$StartDate."'";
$query=mysql_query($sql) or die ("MYSQL error : ".mysql_error());
Pour y intégrer les conditions actuelles ou j'ai du faire cette requete:

Code : Tout sélectionner

$sql2 = "select * from weather ORDER BY timestamp DESC LIMIT 1";
$req = mysql_query($sql2) or die ('Erreur SQL !' .$sql. ' <br> ' .mysql_error());
$res = mysql_fetch_object($req);
Si quelqu'un peut éclairer ma lanterne :-) enfin si c'est possible de le faire ...

Ps: c'est vraiment génial GraphWeather PHP !!
Dernière modification par siegfried le mer. avr. 04, 2007 5:27 pm, modifié 1 fois.
Avatar de l’utilisateur
jturlier
Membre
Messages : 3149
Inscription : mar. août 22, 2006 8:38 am
Localisation : 34410 Sérignan - Languedoc
Contact :

Message par jturlier »

Siegfried, bonjour,
Peux-tu être un tout petit peu plus clair, je n'ai pas réellement compris ce que tu souhaites faire.

Les lignes originales de gwphp sont la construction de la requête,

ta requète sql2 est correcte sauf limit qui nécessite en principe 2 paramètres : le début à 0 pour le premier, et le nombre d'enregistrements à x
ex : limit 0,1; pour la première ligne de résultat

la ligne de fetch que tu insères te permet de lire une ligne et une seule de $res.
(si tu souhaites en lire plusieurs il te faut faire une boucle (i.e. while))

Si tu ne veux que la dernière ligne de ta table, tu n'as pas besoin de limite ds sql2

Le fait de faire ta requète avec select * plutôt que de spécifier les champs nominativement t'obliges à connaître parfaitement l'ordre de ces champs ds la table, c'est tjs un peu plus difficile qud on écrit le code de traitement des résultats de chercher le numéro de chaque colonne. (mais c'est un choix !)
Dernière modification par jturlier le ven. avr. 06, 2007 11:44 am, modifié 1 fois.
Jean

Station : VP2 Pro Console Vue + anémomètre à Ultra-sons
Logiciels : Cumulus 1.9.4 + Cumulus2SQL
Serveur local : Apache + MySQL +PHP
PC : W10
Support Audio : FR

http://meteoserignan.ddns.net
Image
"Aide-toi d'abord toi-même et les autres t'aideront ... peut-être"
siegfried
Membre
Messages : 44
Inscription : lun. juil. 31, 2006 1:08 pm
Contact :

Message par siegfried »

Bonjour,
Merci pour ta réponse (je vois que tu es calé en SGBD ;-))

Ma requête Sql sert juste a sortir le dernier enregitrement fait par Mysql2300.

En fait, ce que je voulais, c'est juste faire une requête globale (pour simplifier le code), avec bien entendu ce dernier enregistrement...
Je ne sais pas si c'est possible, mais je demandais au hasard ^^

Edit: puis j'ai une autre question, comment fait on pour avoir l'heure d'été sur le graph, car dans les enregistrements dans la base, l'heure est correcte.
Par contre quand je génère le graph, il y'a deux heures de moins ;-)
Dernière modification par siegfried le ven. avr. 06, 2007 12:29 pm, modifié 1 fois.
Répondre