Index du Forum » » Le coin des codeurs

Auteur

Mauvais script mais ou ?
oim
1453       
 

  Posté : 20-12-2007 19:44

Bonjour, j'essaye de faire un module de quiz à palier (si le qui est réussi, le membre a acces au suivant sinon il doit attendre un certain tps pour rejouer le quiz raté).

Pour tous ce qui touche au quiz, le module fonctionne bien.

Ce que je n'arrive pas à faire fonctionner (à moitié), c'est le tableau de présentation qui permet au membre de voir ou il en est, capture : http://img175.imageshack.us/my.php?image=capture3zx6.png
C'est la colonne "jouer" qui ne fonctionne pas correctement, mais je pense que ca vient du script tout entier qui est mal fait. Le problème c'est qu'il ne différencie pas les catégories et le lien jouer amène au même quiz.

Actuellement il est comme ca :



//DEBUT INDEX//
function quiz()
{

    global $cookie, $ModPath, $NPDS_Prefix, $ThisFile, $menu;

    Opentable();

    echo ''.$menu.''

    .'<table width="90%" cellspacing="5" cellpadding="3" border="0" align="center">'
    .'<tr>'
    .'<td class="quiz_menu" colspan="4">'.quiz_trad('Liste des catégories').'</td>'
    .'</tr>'

    .'<tr>'
    .'<td class="quiz_legende" colspan="4" align="center">'
    .'<img src="modules/'.$ModPath.'/images/reussi.gif" title="'.quiz_trad('Reussi').'" /> Quiz réussi  '
    .'<img src="modules/'.$ModPath.'/images/echec.gif" title="'.quiz_trad('Raté').'" /> Quiz raté  '
    .'<img src="modules/'.$ModPath.'/images/afaire.gif" title="'.quiz_trad('A faire').'" /> Quiz à faire'
    .'</td>'
    .'</tr>'
 
    .'<tr class="quiz_trois" align="center">'
    .'<td width="25%">'.quiz_trad('Catégorie').'</td>'
    .'<td width="15%">'.quiz_trad('Nbre de quizs').'</td>'
    .'<td width="30%">'.quiz_trad('Votre situation').'</td>'
    .'<td width="30%">'.quiz_trad('Jouer').'</td>'
    .'</tr>';

    /*liste les categories*/
    $result=sql_query("select id_cat, titre, temps from ".$NPDS_Prefix."quiz_cate where cat_ligne='1' order by titre ASC");
    while (list($id_cat, $titre, $temps)=mysql_fetch_row($result))
    {

        /*ID des quiz par rapport a la categorie*/
        $res=sql_query("select id from ".$NPDS_Prefix."quiz where id_cat='$id_cat' and en_ligne='1' order by ordre asc");
        $count = mysql_num_rows($res);


        echo '<tr class="quiz_deux">'
        .'<td>'.aff_langue(''.$ titre.'').'</td>'
        .'<td align="center">'.$count.'</td>'
        .'<td>';

        /*resultat des quiz pour le membre*/
        $res1=sql_query("select etat,time,score,id_quiz,id_cat from ".$NPDS_Prefix."quiz_visiteur where pseudo='$cookie[1]' and id_cat='$id_cat' order by id_quiz asc");
        $count1 = mysql_num_rows($res1);

        /*liste ID des quiz*/
        while (list($id)=mysql_fetch_row($res))
        {

            /*lis te resultat des quiz*/
            list( $etat,$time,$score,$id_quiz,$sid_cat)=mysql_fetch_row($res1);
            if ($id==$id_quiz)
            {

              ;   /*si dans la base le champ score est rempli*/
              ;   if ($score)
              ;   {

              ;       /*Quiz reussi*/
              ;       echo '<img src="modules/'.$ModPath.'/images/reussi.gif" title="'.$id.'" /> ';

              ;   }
              ;   else
              ;   {

              ;       /*Quiz rate - 2 possibilites*/
              ;       echo '<img src="modules/'.$ModPath.'/images/echec.gif" title="'.$id.'" /> ';

              ;       /*Si le timestamp est inferieur au tps de punition (champ temps ds categorie)*/
              ;       $now = time();
              ;       $time_end = $time + ($temps*60); // * 60 secondes
              ;       $diff = $time_end-$now;
              ;       if(time() < $time_end)
              ;       {

              ;           /*lien pour le 3eme TD*/
              ;           $tess = ''.quiz_trad('Fin de punition dans').' '.date('i', $diff).' '.quiz_trad('minutes').'';

              ;       }
              ;       else
              ;       {

              ;           /*lien pour le 3eme TD*/
              ;           $tess = '<a href="'.$ThisFile.'&subop=jouer&sid='.$id.'&id_cat='.$id_cat.'"> '.quiz_trad('Jouer').'</a>';

              ;       }

              ;   }

            }
            else
            {

              ;   /*Affiche les quiz pas encore joué*/
              ;   echo '<img src="modules/'.$ModPath.'/images/afaire.gif" title="'.$id.'" /> ';

$tr=$count1+1;
              ;   /*Affiche l'ID des quiz non joués*/
              ;   $result10=sql_query("select id from ".$NPDS_Prefix."quiz where id_cat='$id_cat' order by ordre asc limit 0,$tr");
              ;   while (list($sid)=mysql_fetch_row($result10))
              ;   {

              ;       if ($sid)
              ;       {

              ;           /*lien pour le 3eme TD*/
              ;           $tess1 = '<a href="'.$ThisFile.'&subop=jouer&sid='.$sid.'&id_cat='.$id_cat.'"> ;'.quiz_trad('Jouer1').'</a>';

              ;       }
              ;       else
              ;       {

              ;           /*lien pour le 3eme TD*/
              ;           $tess1 =''.quiz_trad('terminé').'';

              ;       }
              ;   }

            }
            
        }

        echo '</td>'
        .'<td align="center">';

        if ($tess)
        {

            echo ''.$tess.'';

        }
        else
        {

            echo ''.$tess1.'';

        }

        echo '</td>'
        .'</tr>';

    }

    echo '</table>';

    Closetable();

}
//FIN INDEX//



Si vous avez une idée, merci !



Cet article provient de NPDS

http://www.npds.org/viewtopic.php?topic=23143&forum=5