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 :

interprétation de résultats


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de Angelik
    Profil pro
    Inscrit en
    Août 2006
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 253
    Par défaut interprétation de résultats
    Bonjour tout le monde !

    J'ai mis en place un petit sondage et j'aimerais interprêter les résultats en fonction de l'age ( -18, 18-30a, 30-50a, +50 )

    Le code ci dessus est opérationnel (si je puis dire ) mais j'aimerais réduire les lignes pour arriver au même résultat...

    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
     
    <?php
     
    include ("configuration.php");
     
    $query = mysql_query("SELECT * FROM $sondage WHERE age <= 18");
    $row = mysql_fetch_row($query);
     
    echo "<a href=\"resultat01.php?age=$row[1]\"><b>-18</b></a>";
    echo '<br>';
     
    $query = mysql_query("SELECT * FROM $sondage WHERE age BETWEEN 18 AND 30");
    $row = mysql_fetch_row($query);
     
    echo "<a href=\"resultat01.php?age=$row[1]\"><b>18-30</b></a>";
    echo '<br>';
     
    $query = mysql_query("SELECT * FROM $sondage WHERE age BETWEEN 30 AND 50");
    $row = mysql_fetch_row($query);
     
    echo "<a href=\"resultat01.php?age=$row[1]\"><b>18-30</b></a>";
    echo '<br>';
     
    $query = mysql_query("SELECT * FROM $sondage WHERE age >= 50");
    $row = mysql_fetch_row($query);
     
    echo "<a href=\"resultat01.php?age=$row[1]\"><b>18-30</b></a>";
    echo '<br>';
    ?>
    Voilà, merci d'avance pour le tit coup de main

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    A priori, tu as une erreur. Tes bornes sont incluses dans deux classes.
    Exemple : 30 ans est compté à la fois dans [18-30] et dans [30-50].
    Il faudrait que tu fasses par exemple : [18-30[ et [30-50[, soit :

    ... BETWEEN 18 AND 29
    ... BETWEEN 30 AND 49

    Sinon, pour ta question, tu peux utiliser COUNT et GROUP BY

  3. #3
    Membre éclairé Avatar de Angelik
    Profil pro
    Inscrit en
    Août 2006
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 253
    Par défaut
    Si j'ai bien compris, je peux organiser ma requête de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $query = mysql_query("SELECT count(*) FROM $sondage WHERE age <= 18 AND (age BETWEEN 18 AND 29) AND (age BETWEEN 30 AND 49) AND (age >= 50) GROUP BY age");
    $row = mysql_fetch_row($query);
     
    echo "<a href=\"resultat01.php?age=$row[1]\"><b>-18</b></a>";
    echo '<br>';
    echo "<a href=\"resultat01.php?age=$row[1]\"><b>18-30</b></a>";
    echo '<br>';
    echo "<a href=\"resultat01.php?age=$row[1]\"><b>30-50</b></a>";
    echo '<br>';
    echo "<a href=\"resultat01.php?age=$row[1]\"><b>+50</b></a>";
    echo '<br>';
    Mais de cette façon comment distinguer les liens ci-dessus où -18a,18-30a,30-50a,+50a) renvoient à la même adresse resultat01.php?age=$row[1]

    Merci d'avance

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Tu cherches en gros à faire une pagination en focntion de l'age (question un peu lourde mais c'est pour bien comprendre la demande )

  5. #5
    Membre éclairé Avatar de Angelik
    Profil pro
    Inscrit en
    Août 2006
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 253
    Par défaut
    En fait j'aimerais interpréter les résultats d'un questionnaire en fonction de l'âge dont voici ma requête principale si je puis dire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $result = mysql_query("SELECT * FROM $sondage WHERE age='$age'");
        $num_rows = mysql_num_rows($result);
    Pour ce faire, j'utilise ce code pour remplacer $age

    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
     
    include ("configuration.php");
     
    $query = mysql_query("SELECT * FROM $sondage WHERE age <= 18");
    $row = mysql_fetch_row($query);
     
    echo "<a href=\"resultat01.php?age=$row[1]\"><b>-18</b></a>";
    echo '<br>';
     
    $query = mysql_query("SELECT * FROM $sondage WHERE age BETWEEN 18 AND 30");
    $row = mysql_fetch_row($query);
     
    echo "<a href=\"resultat01.php?age=$row[1]\"><b>18-30</b></a>";
    echo '<br>';
     
    $query = mysql_query("SELECT * FROM $sondage WHERE age BETWEEN 30 AND 50");
    $row = mysql_fetch_row($query);
     
    echo "<a href=\"resultat01.php?age=$row[1]\"><b>18-30</b></a>";
    echo '<br>';
     
    $query = mysql_query("SELECT * FROM $sondage WHERE age >= 50");
    $row = mysql_fetch_row($query);
     
    echo "<a href=\"resultat01.php?age=$row[1]\"><b>18-30</b></a>";
    echo '<br>';
    ?>
    où $row[1] est égal à ma colonne âge

    Ce code marche mais me paraît assez lourd et je pense que je peux le réduire et le simplifier ?

    Voilà

  6. #6
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    D'où ma question : Réduire comment ? Pagination en fonction de l'age ?

  7. #7
    Membre éclairé Avatar de Angelik
    Profil pro
    Inscrit en
    Août 2006
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 253
    Par défaut
    Juste simplifier (si possible) le code en conservant le même résultat.

    Voici le LIEN sans mise en page pour l'instant qui est, je l'accorde assez illisible...

  8. #8
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Désolé de te contredire mais ton code ne marche pas du tout

    Tu souhaites obtenir un intervalle de date or avec ton code tu lui donnes un age précis et tu fais ta requete. DOnc par exemple pour les -18 tu fais ta sélection et tu récupere le premier élément de la première ce qui peut etre 17 comme 10 et après tu ne fais plus de between pour obtenir tous les éléments appartenant à la zone -18.
    Donc ça correpond pas à ce que j'ai compris (Qui est un affichage à partir d'une zone précise de tes enregistrements, me trompe-je ?)

  9. #9
    Membre éclairé Avatar de Angelik
    Profil pro
    Inscrit en
    Août 2006
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 253
    Par défaut
    Je saisi pas tout désolé ... Pour reprendre, je récupère via un questionnaire différents éléments dont l'âge du sondé.

    Lors de l'interprétation des résultats je divise le questionnaire en 4 catégories et par age : -18a, 18-30a, 30-50a et +50a (cf LIEN

    Pour cela voilà ma requête :

    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
     
     
    include ("configuration.php");
     
    $query = mysql_query("SELECT * FROM $sondage WHERE age <= 18");
    $row = mysql_fetch_row($query);
     
    echo "<a href=\"resultat01.php?age=$row[1]\"><b>-18</b></a>";
    echo '<br>';
     
    $query = mysql_query("SELECT * FROM $sondage WHERE age BETWEEN 18 AND 30");
    $row = mysql_fetch_row($query);
     
    echo "<a href=\"resultat01.php?age=$row[1]\"><b>18-30</b></a>";
    echo '<br>';
     
    $query = mysql_query("SELECT * FROM $sondage WHERE age BETWEEN 30 AND 50");
    $row = mysql_fetch_row($query);
     
    echo "<a href=\"resultat01.php?age=$row[1]\"><b>18-30</b></a>";
    echo '<br>';
     
    $query = mysql_query("SELECT * FROM $sondage WHERE age >= 50");
    $row = mysql_fetch_row($query);
     
    echo "<a href=\"resultat01.php?age=$row[1]\"><b>18-30</b></a>";
    echo '<br>';
    et voici l'autre partie du code pour interprêter les résultats en fonction de l'âge :

    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
    <?php
    $result=mysql_query("SELECT sondage.promo01, count( * ) AS nombre FROM sondage WHERE age='$age' GROUP BY sondage.promo01 ORDER BY nombre desc LIMIT 0 , 3") or die ('Erreur : '.mysql_error() );
    	$row = mysql_query($result);
        $nombre = $row['nombre'];
    	
    while($row = mysql_fetch_assoc($result)) {
    
    echo $row['promo01'];
    echo '<br>';
    echo '<b>Réponse(s): </b>';
    echo $row['nombre'];
    echo '<br>';
    echo $partdec;
    echo '<br>';
    
    }
    ?>
    En tout cas merci de prendre le temps d'essayer de comprendre même si cela nous semble difficile là

  10. #10
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Voilà ton gros problème déjà : La récupération des ages. Regardes toi meme sur ta page et tu verras que tu fais une requete que sur un age précis. Or c'est pas ce que tu souhaites.

    DOnc je te conseillerai de virer toute cette partie :
    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
    $query = mysql_query("SELECT * FROM $sondage WHERE age <= 18");
    $row = mysql_fetch_row($query);
     
    echo "<a href=\"resultat01.php?age=$row[1]\"><b>-18</b></a>";
    echo '<br>';
     
    $query = mysql_query("SELECT * FROM $sondage WHERE age BETWEEN 18 AND 30");
    $row = mysql_fetch_row($query);
     
    echo "<a href=\"resultat01.php?age=$row[1]\"><b>18-30</b></a>";
    echo '<br>';
     
    $query = mysql_query("SELECT * FROM $sondage WHERE age BETWEEN 30 AND 50");
    $row = mysql_fetch_row($query);
     
    echo "<a href=\"resultat01.php?age=$row[1]\"><b>18-30</b></a>";
    echo '<br>';
     
    $query = mysql_query("SELECT * FROM $sondage WHERE age >= 50");
    $row = mysql_fetch_row($query);
     
    echo "<a href=\"resultat01.php?age=$row[1]\"><b>18-30</b></a>";
    echo '<br>';
    Et de la remplacer par celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    echo '<a href="resultat01.php?age=0-18"><b>-18</b></a>';
    echo '<br>';
     
    echo '<a href="resultat01.php?age=18-30"><b>18-30</b></a>';
    echo '<br>';
     
    echo '<a href="resultat01.php?age=30-50"><b>30-50</b></a>";
    echo '<br>';
     
    echo '<a href="resultat01.php?age=50-150"><b>18-30</b></a>';
    echo '<br>';
    Ensuite pour ce qui est de ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result=mysql_query("SELECT sondage.promo01, count( * ) AS nombre FROM sondage WHERE age='$age' GROUP BY sondage.promo01 ORDER BY nombre desc LIMIT 0 , 3") or die ('Erreur : '.mysql_error() );
    Le remplacer par ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    if(isset($_GET['age']) && !empty($_GET['age']))
    {
       $age = $_GET['age'];
      $between = str_replace('-', ' and ', $age);
    }
    else
    {
      $between = '0 and 18';
    }
    $result=mysql_query("SELECT sondage.promo01, count( * ) AS nombre FROM sondage WHERE age BETWEEN ".$between." GROUP BY sondage.promo01 ORDER BY nombre desc LIMIT 0 , 3") or die ('Erreur : '.mysql_error() );

  11. #11
    Membre éclairé Avatar de Angelik
    Profil pro
    Inscrit en
    Août 2006
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 253
    Par défaut
    Merci Je vais tester tout ça de suite...

    Tu donnes des cours particuliers ? Parce que ça pourrait m'aider.

    Pourtant depuis qq mois j'ai l'impression d'avoir progressé mais ce soir j'ai pas été forte j'avoue...

  12. #12
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Non pas du tout. Et si je le voulais j'ai vraiment pas le temps.

    Déjà testes ceci et on verra après

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [TPTP] [DEBUTANT]TPTP configuration et interprétation des résultats.
    Par inconnu652000 dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 18/11/2008, 16h43
  2. Comment interpréter les résultats de la FFt ?
    Par kloofi dans le forum Signal
    Réponses: 2
    Dernier message: 09/11/2008, 11h04
  3. Réponses: 2
    Dernier message: 20/06/2008, 08h43
  4. SQLIO - Interprétation des résultats
    Par Ptit_Dje dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 29/04/2008, 10h54
  5. DBCC SQLPERF ( LOGSPACE ) Interprétation des résultats
    Par Labienus dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 20/07/2004, 16h50

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