Plusieurs requete sql ds 1 while

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Plusieurs requete sql ds 1 while

Re: Plusieurs requete sql ds 1 while

par moogli » 04 avr. 2014, 21:25

Salut,

Vu le code c'est inutile ce que tu fais.
Tu as sûrement moyen de faire qu'une seule requête.

Si tu réfléchie au fonctionnement de ton code tu te dit qu'un jeux de résultat n'est utilisé qu'une seule fois (vue que pas remis a zéro).
Ensuite chaque demande retournera que false.

Donc il est certain que chaque while ne fera "qu'un tour".

Soit tes données sont cohérentes et une seule requêtes est jouable.
Soit ce n'est pas le cas et tu va devoir agréer tes résultats sur une clef commune.

@+

Plusieurs requete sql ds 1 while

par Sebg76 » 03 avr. 2014, 21:36

Bonjour,
Ma bdd est composée de 3 colonnes
une ffeed avec le nom des sondes (T_Sej, T_Ext...).
une timestamp avec un timestamp datetime.
une avec la valeur de la sonde.
Je souhaite récupérer l'ensemble au format json suivant :

Code : Tout sélectionner

[[1387648232000,21,9,11,49],[1387648232000,21,9,11,40],[1387648232000,21,9,11,40],[1387648232000,21,9,11,40],[1387648232000,21,9,11,40],[1387648232000,21,9,11,40],[1387648232000,21,9,11,40],[1387648232000,21,9,11,40],[1387648232000,21,9,11,40]]
J'ai essayé avec le script suivant :

Code : Tout sélectionner

$sql_date = mysql_query("SELECT DISTINCT UNIX_TIMESTAMP(ftimestamp) AS date FROM graph ORDER BY date ASC "); $sql_tsejour = mysql_query("SELECT fvalue as tsejour, UNIX_TIMESTAMP(ftimestamp) FROM graph WHERE ffeed = 'T_Sejour' ORDER BY UNIX_TIMESTAMP(ftimestamp) ASC "); $sql_text = mysql_query("SELECT fvalue as text, UNIX_TIMESTAMP(ftimestamp) FROM graph WHERE ffeed = 'T_Ext' ORDER BY UNIX_TIMESTAMP(ftimestamp) ASC "); $sql_tsouf = mysql_query("SELECT fvalue as tsouf, UNIX_TIMESTAMP(ftimestamp) FROM graph WHERE ffeed = 'T_Souf' ORDER BY UNIX_TIMESTAMP(ftimestamp) ASC "); $sql_hsejour = mysql_query("SELECT fvalue as hsejour, UNIX_TIMESTAMP(ftimestamp) FROM graph WHERE ffeed = 'H_Sejour' ORDER BY UNIX_TIMESTAMP(ftimestamp) ASC "); while($date = mysql_fetch_array($sql_date)) { $result_date = $date['date']*1000; while($tsejour = mysql_fetch_array($sql_tsejour)) { $result_tsejour = $tsejour['tsejour']; while($text = mysql_fetch_array($sql_text)) { $result_text = $text['text']; while($tsouf = mysql_fetch_array($sql_tsouf)) { $result_tsouf = $tsouf['tsouf']; while($hsejour = mysql_fetch_array($sql_hsejour)) { $result_hsejour = $hsejour['hsejour']; $result [] = array($result_date, $result_tsejour, $result_text, $result_tsouf, $result_hsejour); } } } } } print json_encode($result, JSON_NUMERIC_CHECK);
J'ai bien le format json souhaité mais les valeurs sont fausses, seul la dernière valeur est bonne.
Je fais peut être fausse route avec ce type de script mais je ne sais pas comment faire pour imbriquer mes requetes sql en une seule requete !