Salut, j'ai un script qui fonctionne mais que je voudrais améliorer.
A la base, j'ai un concours. Il y a 3 questions (1 point par bonne réponses). Le vainqueur est tiré au sort aléatoirement parmi ceux qui ont les 3 bonnes réponses.
Actuellement, voilà comment je procede.
Je selectionne les réponses qui valent 1 point pour le concours en cours
Ensuite, je copie/colle la requete me permettant de selectionner le vainqueur. La voila
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 $req="SELECT DISTINCT idREPONSE FROM concours,questions,reponse WHERE idconcours='$idconc' AND idconcours=concours_idconcours AND QUESTIONS_idQUESTIONS=idQUESTIONS AND valeur_rep=1 "; $query=mysql_query($req); //envoi dans la BDD if (!$query) { ?> <br /> Erreur lors de la sélection des bonnes réponses! <?php echo mysql_error(); } else { while($res=mysql_fetch_array($query)) { echo $res[0] ?> <br /> <?php } }
Code SQL : 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 SELECT membre_idmembre,COUNT(*) FROM ( SELECT DISTINCT membre_idmembre FROM resultat, reponse WHERE idREPONSE = REPONSE_idREPONSE AND reponse_idreponse =xx AND valeur_rep =1 UNION ALL SELECT DISTINCT membre_idmembre FROM resultat, reponse WHERE idREPONSE = REPONSE_idREPONSE AND reponse_idreponse =xx AND valeur_rep =1 UNION ALL SELECT DISTINCT membre_idmembre FROM resultat, reponse WHERE idREPONSE = REPONSE_idREPONSE AND reponse_idreponse =xx AND valeur_rep =1 ) AS Tabx GROUP BY membre_idmembre HAVING count(*) =3 ORDER By rand() LIMIT 1
Je remplace les xx par les réponses obtenues plus haut.
Je cherche un moyen de ne plus faire çà "à la main". Je voudrais que la 2eme requete contiennent déjà les bons identifiants pour qu'ensuite, je fasse la requete dans la foulée.
Je penses à la concatenation mais j'y arrive pas.
Quelqu'un aurai-il une idée ??
Merci d'avance
Partager