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] Requêtes pour gérer des questionnaires


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut [SQL] Requêtes pour gérer des questionnaires
    Voila, etant trés novice en langage php, j'ai un petit souci concernant les requetes.
    J'ai deux tables test et questions, dont voici leurs contenu:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    table test:
    test_id
    test_name
    test_font
    test_color
    test_size
    pas_percent
    test_statuts
    test_price
    question_time
    feest
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    table questions:
    q_id
    t_id
    user_name
    question
    answer
    q_marks
    q_image
    Voici le contenu du code php de ma page nommée test_list.php:

    Code php : 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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    <?php 
    	session_start();
    	if(!isset($_SESSION['session_login']) || $_SESSION['session_login'] == "")
    		header("Location:loginform.php?errFlag=1");
     
    /** SETTING TOTAL MARKS VALUE ***********************/
    $_SESSION['tot_marks']=0;
    ?>
    <html><head>
    <title>:: QCM en Ligne :: </title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link href="admin/include/style.css" rel="stylesheet" type="text/css">
    <? require("admin/include/conn.php");?>
    <? require("admin/include/functions.php");?>
    <? require("admin/include/logcheck.php");?>
     
    <script language="JavaScript" type="text/javascript" src="include/javasc.js"></script>
    </head>
    <body bgcolor="#EAE3EB">
    <div align="center">
    <table width="778" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
      <tr align="center" valign="middle" bgcolor="#B6A5B5"> 
        <td height="100" colspan="2"> 
          <? require("admin/include/header.php");?></td>
      </tr>
      <tr>
        <td height="417" valign="top" width="170"><? require("include/left.php");?></td>
        <td align="center" valign="top" class="leftlinks" width="608">
          <br>
          <br>
          <div align="center">
          <table width="98%" border="0" cellpadding="2" cellspacing="0" class="brd">
          <tr bgcolor="#B6A5B5">
            <td width="50%" align="left" class="blacktxt"><font color="#FFFFFF">Modules Présents 
    		</font> </td>
            <td width="24%" align="left" class="blacktxt"><font color="#FFFFFF">Démarrer Module
    		</font> </td>
    		<td width="14%" align="left" class="blacktxt"><font color="#FFFFFF">Nb Quest.
    		</font> </td>
    		<td width="10%" align="left" class="blacktxt"><font color="#FFFFFF">Durée
    		</font> </td>
    				</tr>
          <tr align="left" class="leftlinks">
            <td height="5" colspan="2"></td>
          </tr>
     
    <?
     
    //Recherche par Module Actif
    $tests = "SELECT * FROM test WHERE test_status= 1 ORDER BY test_id DESC";
    		$res_test = mysql_query($tests) or die(mysql_error());
    				if(mysql_num_rows($res_test) == 0){			
     
    //Recherche du Nombre de Questions par Module
    $questions = "SELECT COUNT(q_id) FROM questions GROUP BY t_id"";
    		$res_quest = mysql_query($questions) or die(mysql_error());
    				if(mysql_num_rows($res_quest) == 0){	
    
    	
    ?>
    <tr align="center" class="leftlinks">
    <td colspan="2">Pas d'enregistrement trouvé.... </td>
    </tr>      
    <? 
    }else{
    // Tableau qui doit s'afficher	  	
    while($test= mysql_fetch_array($res_test)){
    		$test_id   = $test['test_id'];
    		$test_name = $test['test_name'];
    		$nb_quest = $qr2[0]; <=== Champ qui me pose probleme
    		$duree = $test['question_time'];
    		?>
     
    		 <tr align="left" class="leftlinks2">
    		 <td><?=$test_name?></td>
            <td><a href="start_test.php?tid=<?=$test_id?>" class="text">
    		<span style="font-weight: 400">Demarrer le Module</span></a></td>
    		<td><?=$nb_quest?></td>
    		<td><?=$duree?></td>
          </tr> 
    <? 
    		}	  
    	  }
     
     
    	  ?>
     
        </table>
        	</div>
        <br>
        <br>
        <br>
        <br></td>
      </tr>
      <tr bgcolor="#B6A5B5"> 
        <td colspan="2"> 
          <? require("admin/include/footer.php");?>
        </td>
      </tr>
    </table>
    </div>
     
    </body>
    </html>

    Jai fait une deuxieme requete nommée questions pour avoir le nombre de questions par module, et la gros souci je n'arrive pas du tout a mettre deux requetes a la fois.
    La premiere requete marche bien...

    Voici mon tableau:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Modules Présents               | Démarrer le Module | Nb Quest. | Durée |
     
    010 - AERONEF                    Démarrer le Module            7        120    |
    050 - METEOROLOGIE         | Démarrer le Module |         10     | 140    |
    Si quelqu'un peut m'aider, car la vraiment je flanche...
    Merci par avance Fred

  2. #2
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    Tu ne fais pas de boucle dans ton code oO

    De plus, il y a quelque chose de très étrange :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    //Recherche par Module Actif
    $tests = "SELECT * FROM test WHERE test_status= 1 ORDER BY test_id DESC";
    $res_test = mysql_query($tests) or die(mysql_error());
    if(mysql_num_rows($res_test) == 0){	
        //Recherche du Nombre de Questions par Module
        ......

    Si je traduis son bout de code en "français", ça donne :

    Bon OK mon gaillard ! T'as pas trouvé de test actif ?? bon ok tampis, j'te force quand même à trouver des questions pour un test qui n'existe pas et bonne merde !

    Voici plutot ce qu'il faudrait écrire :
    Code php : 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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
     
    <?php 
    	session_start();
    	if(!isset($_SESSION['session_login']) || $_SESSION['session_login'] == "")
    		header("Location:loginform.php?errFlag=1");
     
    /** SETTING TOTAL MARKS VALUE ***********************/
    $_SESSION['tot_marks']=0;
    ?>
    <html><head>
    <title>:: QCM en Ligne :: </title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link href="admin/include/style.css" rel="stylesheet" type="text/css">
    <? require("admin/include/conn.php");?>
    <? require("admin/include/functions.php");?>
    <? require("admin/include/logcheck.php");?>
     
    <script language="JavaScript" type="text/javascript" src="include/javasc.js"></script>
    </head>
    <body bgcolor="#EAE3EB">
    <div align="center">
    <table width="778" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
      <tr align="center" valign="middle" bgcolor="#B6A5B5"> 
        <td height="100" colspan="2"> 
          <? require("admin/include/header.php");?></td>
      </tr>
      <tr>
        <td height="417" valign="top" width="170"><? require("include/left.php");?></td>
        <td align="center" valign="top" class="leftlinks" width="608">
          <br>
          <br>
          <div align="center">
          <table width="98%" border="0" cellpadding="2" cellspacing="0" class="brd">
          <tr bgcolor="#B6A5B5">
            <td width="50%" align="left" class="blacktxt"><font color="#FFFFFF">Modules Présents 
    		</font> </td>
            <td width="24%" align="left" class="blacktxt"><font color="#FFFFFF">Démarrer Module
    		</font> </td>
    		<td width="14%" align="left" class="blacktxt"><font color="#FFFFFF">Nb Quest.
    		</font> </td>
    		<td width="10%" align="left" class="blacktxt"><font color="#FFFFFF">Durée
    		</font> </td>
    				</tr>
          <tr align="left" class="leftlinks">
            <td height="5" colspan="2"></td>
          </tr>
     
    <?
     
    //Recherche par Module Actif
    $tests = "SELECT * FROM test WHERE test_status= 1 ORDER BY test_id DESC";
    $res_test = mysql_query($tests) or die(mysql_error());
    if(mysql_num_rows($res_test) > 0) { /// correction
     
    	while( $r1 = mysql_fetch_assoc($res_test) ) { /// correction
     
    	//Recherche du Nombre de Questions par Module
    	$questions = "SELECT COUNT(question) AS nbrQ FROM questions WHERE q_id = '".$r1["test_id"]."'"; /// correction
    	$res_quest = mysql_query($questions) or die(mysql_error());
    				if(mysql_num_rows($res_quest) > 0) { /// correction
    				$r2 = mysql_fetch_assoc($res_quest); /// correction
     
    ?>
    <tr align="center" class="leftlinks">
    <td colspan="2">Pas d'enregistrement trouvé.... </td>
    </tr>      
    <? 
    }else{
    // Tableau qui doit s'afficher	  	
    while($test= mysql_fetch_array($res_test)){
    		$test_id   = $test['test_id'];
    		$test_name = $test['test_name'];
    		$nb_quest = $r2["nbrQ"]; /// correction
    		$duree = $test['question_time'];
    		?>
     
    		 <tr align="left" class="leftlinks2">
    		 <td><?=$test_name?></td>
            <td><a href="start_test.php?tid=<?=$test_id?>" class="text">
    		<span style="font-weight: 400">Demarrer le Module</span></a></td>
    		<td><?=$nb_quest?></td>
    		<td><?=$duree?></td>
          </tr> 
    <? 
    		}	  
    	  }
     
     
    	  ?>
     
        </table>
        	</div>
        <br>
        <br>
        <br>
        <br></td>
      </tr>
      <tr bgcolor="#B6A5B5"> 
        <td colspan="2"> 
          <? require("admin/include/footer.php");?>
        </td>
      </tr>
    </table>
    </div>
     
    </body>
    </html>

    PS : En réécrivant le code, j'ai vu que tu faisais pareil avec les questions oO
    Là tu faisais encore mieux :

    Alors là mon gros, ça se complique... SI tu n'as PAS trouvé de test actif, et si EN PLUS, il ne possède pas de questions, bah tu vas me les afficher ! Du Saint-Esprit s'il le faut, mais tu vas m'afficher qqch qui n'existe pas, je l'exige !!!

    PS 2 : Désolé, j'aime bien caricaturer

Discussions similaires

  1. [AC-2000] Requêtes pour gérer des résultats de tournois
    Par Sadavir dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 21/05/2010, 09h45
  2. [SQL] Requête pour afficher des valeurs uniques
    Par gcvoiron dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 13/11/2007, 17h38
  3. [MySQL] conseils pour gérer des images avec mysql
    Par briiice dans le forum Administration
    Réponses: 9
    Dernier message: 04/01/2006, 09h52
  4. [XSLT] Comment procéder pour gérer des langues ?
    Par virgul dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 31/03/2005, 11h01
  5. Une unité pour gérer des très grands nombres
    Par M.Dlb dans le forum Langage
    Réponses: 2
    Dernier message: 09/09/2003, 12h07

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