|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2006 Messages : 62 ![]() |
Bonjour à tous...
Voilà, un jeu simple que j'ai en php, une question, 4 réponses (genre qcm) Je souhaite récupérer le visiteur (non inscrit sur le site) qui a fourni la réponse juste le plus rapidement. Ensuite j'envois le gagant vers une page et les perdants vers une autre... Puis, inscrire ces infos dans ma base sql... Je ne sais comment m'y prendre... Je cherche, mais ne trouve rien à ce sujet... |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Quand quelqu'un trouve la bonne réponse, ca l'envoie vers un script PHP qui va traiter ca!
Le plus simple c'est donc de commencer par verrouiller dans la base sql la table qui va contenir le nom du gagnant par exemple. Ensuite, quand la table est verrouillée, tu regardes si quelqu'un a déjà bien répondu, si non, tu mets a jours la base, tu la déverrouilles et tu rediriges l'utilisateur et tu as ton premier gagnant. Les suivants (meme 100ms apres) comme ils veulent aussi verrouiller la table ils sont obligés d'attendre que le tout premier l'ait déverrouillée, et quand ca sera fait tu t'apercevras qu'il y a déjà eu un gagnant! Voila j'espere avoir été compréhensible |
|
|
00
|
|
|
#3 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2006 Messages : 62 ![]() |
Merci de répondre... Mais effectivement, pas très clair pour nu newbie comme moi...
A ce stade, j'ai ceci : Code :
Ensuite, j'ai : Code :
Voilà où j'en suis... Donc, il me manque déjà le script qui va traiter les réponses... Et ensuite, comment verrouille t-on une table? |
||||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Verrouiller des tables MYSQL
En gros dans ton script qui traite les réponses, la PREMIERE chose a faire c'est de te connecter a la base et de verrouiller la table qui gère les parties. Tous les scripts qui vont la verrouiller se mettent donc en liste d'attente, dans l'ordre du premier arrivé, tout est géré par mysql tu ne t'en préoccuppes pas. Une fois que c'est fait, tu fais comme si tout était normal :
|
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2006 Messages : 62 ![]() |
Merci, je regarde cela et te tiens au jus...
Et merci à mathieu d'avoir rétabli les bonnes balises pour mon code... Pas bien réveillé ce matin... |
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2006 Messages : 62 ![]() |
Bon, j'avance, mais me pose une question...
Est ce qu'avec cette méthode de verrouillage, je vais pouvoir avoir le temps de réponse du gagant... C'est un jeu de rapidité, et j'aimerais donner le temps de réponse à chaque participant... Merci |
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Ben dans ce cas il faut faire le calcul avant de verrouiller la table, parce que quand t'attends qu'un verrou se libère t'es en "pause".
|
|
|
00
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2006 Messages : 62 ![]() |
Si je fais le calcul avant de vérrouiller, et que j'obtiens donc le temps de réponse de chaque participant, est ce que j'ai encore besoin de verrouiller?
Et comment fait on pour calculer ce temps entre l'affichage des réponses et le clic sur le bouton valider? |
|
|
00
|
|
|
#9 | |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Citation:
Pour l'histoire du temps, quand tu génères ton formulaire avec la question, tu peux ajouter une date/un timestamp qui correspond à l'heure a laquelle la personne a eue la question. Mais ca pose un probleme de sécurité, le mieux va etre de passer par les sessions (il y a des cours du developpez.com qui en parlent) Par contre j'ai pas compris, si quelqu'un lit le questionnaire a 00h pile et répond en une minute, est ce qu'il est gagnant par rapport a celui qui le lit a 00h00min30s et qui répond en 40s (donc plus vite mais après lui) ??? Parce que dans ce cas tu t'en fiches de savoir le temps que chacun met a répondre, le seul truc intéressant c'est : le temps du plus rapide (qui correspond a l'heure a laquelle il a répondu moins l'heure a laquelle le questionnaire a été créé (date que tu peux stocker dans la base)) |
|
|
|
00
|
|
|
#10 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2006 Messages : 62 ![]() |
Merci de tes explications...
Non, en fait la question apparait pendant un laps de temps qui est le même pour tous.. (compte à rebours) Les réponses apparaissent à la fin du compte à rebours... Et là, je fais gagner le plus rapide à répondre... |
|
|
00
|
|
|
#11 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
D'accord, donc ca répond a ma question : le premier a verrouiller la table sera aussi le plus rapide de tous (s'il a la réponse juste bien sur)
Il suffit donc que dans ta table tu stockes la date exacte a laquelle ton questionnaire est disponible. Au début du script qui vérifie la réponse tu commences par stocker dans une variable la date a laquelle la personne a répondu. Si la personne répond faux, ben tu ignores Si la personne répond juste, alors tu peux savoir a partir de cette variable et de la date stockée dans la base le temps exact qu'il a mis a répondre! |
|
|
00
|
|
|
#12 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2006 Messages : 62 ![]() |
Cela me semble très bien ceci et cela correspond plus à ce que je tentais...
J'avais déjà inscrit dans la table l'heure d'affichage du questionnaire par partie (Plus de 200 parties par jour)... je continue et merci encore... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com