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

Requêtes MySQL Discussion :

Plusieurs requêtes avec un while


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 6
    Points : 8
    Points
    8
    Par défaut Plusieurs requêtes avec un while
    Bonjour,
    Je voudrais obtenir un format json suivant avec plusieurs requêtes sql afin de réaliser un graphique avec highstock.
    Voici le format json souhaité:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [[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]]
    J'ai imbriqué des whiles pour essayer d'obtenir le bon format json mais seule la dernière valeure est correcte.
    Voici mes requêtes sql :
    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
    45
    46
    47
    48
    49
    50
    51
    $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'obtiens bien le format json souhaité, mais seule la dernière valeure du dernier while est correcte.
    Comment faire ?
    Merci pour votre aide.

  2. #2
    Membre du Club
    Inscrit en
    Mai 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 27
    Points : 44
    Points
    44
    Par défaut
    Salut,

    Je n'ai fait que survoler, mais il me semble que tu te complique la vie pour rien!
    pourquoi ne pas joindre ta table graph autant de fois que nécessaire?

    de manière générale, si tu as besoin de mettre des requêtes dans des boucles, c'est que tu as un problème de modélisation (ou que tu ne sais pas requêter correctement
    excepté les insert qui ne peuvent être multitable, quasiment tout doit pouvoir se faire en une seule requête (avec des sous-requêtes ou des union, mais en une seule requête).

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 6
    Points : 8
    Points
    8
    Par défaut
    En fait je ne suis pas expert, je ne fais que bidouiller et utiliser ce que je connais pour l'instant.
    Je vais essayer en joignant la table graph, mais je ne connais pas cette fonction.

Discussions similaires

  1. [MySQL] plusieurs requêtes avec insert to
    Par djoumusic dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 07/07/2008, 18h02
  2. Réponses: 5
    Dernier message: 12/03/2008, 19h41
  3. Plusieurs requêtes avec Access
    Par noirot dans le forum Access
    Réponses: 3
    Dernier message: 22/08/2006, 09h53
  4. [AJAX] Enchainer plusieurs requêtes avec Ajax
    Par Bobtop dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/08/2006, 08h13
  5. Requête à plusieurs colonnes avec la fonction COUNT
    Par zigune dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/11/2004, 10h43

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