La première bonne réponse gagne. PHP
Résolu/Fermé
shoub-tcy
Messages postés
169
Date d'inscription
mardi 6 mars 2012
Statut
Membre
Dernière intervention
23 mai 2012
-
24 avril 2012 à 22:29
shoub-tcy Messages postés 169 Date d'inscription mardi 6 mars 2012 Statut Membre Dernière intervention 23 mai 2012 - 27 avril 2012 à 01:39
shoub-tcy Messages postés 169 Date d'inscription mardi 6 mars 2012 Statut Membre Dernière intervention 23 mai 2012 - 27 avril 2012 à 01:39
A voir également:
- La première bonne réponse gagne. PHP
- Thunderbird réponse automatique - Guide
- Easy php - Télécharger - Divers Web & Internet
- Appel messenger pas de reponse - Forum LG
- Qui veut devenir l'ami de julia pix reponse ✓ - Forum Vos droits sur internet
- La blague des trois nains réponse - Forum Loisirs / Divertissements
4 réponses
Table gagnant:
Membre
Date/heure/min(ID)
Question(FK)
N'enregistrer que question n'a pas de réponse, donc aucun résultat encore enregistré.
Membre
Date/heure/min(ID)
Question(FK)
N'enregistrer que question n'a pas de réponse, donc aucun résultat encore enregistré.
tryan44
Messages postés
1288
Date d'inscription
mardi 24 janvier 2012
Statut
Membre
Dernière intervention
26 octobre 2014
220
Modifié par baladur13 le 28/04/2012 à 13:50
Modifié par baladur13 le 28/04/2012 à 13:50
Salut,
Je dirais que si le quiz est bon, on regarde dans le champ "gagnant" si il y a une valeur égal à 1...si il n'y a rien, on change la valeur à 1 du membre qui a répondu correctement le premier.
Bref, un truc du style :
Signature non conforme - Publicité supprimée Modération CCM
Je dirais que si le quiz est bon, on regarde dans le champ "gagnant" si il y a une valeur égal à 1...si il n'y a rien, on change la valeur à 1 du membre qui a répondu correctement le premier.
Bref, un truc du style :
$query = mysql_query("SELECT gagnant FROM matable WHERE gagnant=1"); if(mysql_num_rows($query) == 0) { $result=mysql_query("UPDATE matable SET gagnant = 1 WHERE id_du_membre = $identifiant_du_membre"); } else{ echo 'Il y a plus rapide que vous!'; }
Signature non conforme - Publicité supprimée Modération CCM
shoub-tcy
Messages postés
169
Date d'inscription
mardi 6 mars 2012
Statut
Membre
Dernière intervention
23 mai 2012
2
24 avril 2012 à 23:10
24 avril 2012 à 23:10
Merci d'avoir répondu tyran44,
Oui, je sais comment vérifier si le champ est égale à 1, mais ce que je veux savoir, c'est comment le passer à 1 seulement pour le premier membre qui répond juste.
Oui, je sais comment vérifier si le champ est égale à 1, mais ce que je veux savoir, c'est comment le passer à 1 seulement pour le premier membre qui répond juste.
tryan44
Messages postés
1288
Date d'inscription
mardi 24 janvier 2012
Statut
Membre
Dernière intervention
26 octobre 2014
220
25 avril 2012 à 11:30
25 avril 2012 à 11:30
C'est ce que fait la requête juste au dessus puisqu'elle vérifie dans un premier temps si le chiffre 1 existe dans la table "gagnant" et dans un second si le chiffre 1 n'existe pas, la requête suivante enregistre ce chiffre pour le membre. A partir du moment ou il y a un "1" d'enregistré, le code passe sur le "else".
AssassinTourist
Messages postés
5893
Date d'inscription
lundi 16 janvier 2012
Statut
Contributeur
Dernière intervention
29 février 2024
1 312
25 avril 2012 à 09:37
25 avril 2012 à 09:37
Bonjour,
C'est un jeu "en live" ou sinon, c'est en différé comme sur un forum ?
C'est un jeu "en live" ou sinon, c'est en différé comme sur un forum ?
shoub-tcy
Messages postés
169
Date d'inscription
mardi 6 mars 2012
Statut
Membre
Dernière intervention
23 mai 2012
2
25 avril 2012 à 09:49
25 avril 2012 à 09:49
Merci d'avoir répondu Assassin Tourist
Enfet il y a un compte a rebours qui délimite le temps des questions donc plusieurs utilisateurs feront le quiz en même temps.
Enfet il y a un compte a rebours qui délimite le temps des questions donc plusieurs utilisateurs feront le quiz en même temps.
AssassinTourist
Messages postés
5893
Date d'inscription
lundi 16 janvier 2012
Statut
Contributeur
Dernière intervention
29 février 2024
1 312
25 avril 2012 à 10:00
25 avril 2012 à 10:00
Le problème, c'est donc l'accès concurrent si j'ai bien saisi ?
shoub-tcy
Messages postés
169
Date d'inscription
mardi 6 mars 2012
Statut
Membre
Dernière intervention
23 mai 2012
2
25 avril 2012 à 10:53
25 avril 2012 à 10:53
Enfet je veux que seul le nom du gagnant soit affiché sur la page finale donc celui qui répond en premier et juste. Mais le but étant que plusieurs utilisateurs puissent participer en même temps.
J'avait compris ça, je n'ai pas de solution pour l'accès concurrent sauf que pour être plus précis que la seconde ça l'est mais ça dépendras à ce niveau là de la vitesse de téléchargement(upload) du FAI et du serveur web...
Avec la proposition que j'ai faite c'est uniquement la première réponse(juste làil faut se tourner vers php pour comparer) qui est envoyée qui est enregistrée, donc on a bien le gagnant à la seconde près.Le fait que sur une base les champs de date sont en secondes y change rien, ce n'est même pas nécessaire de le retenir mais j'ai estimé que cette donnée pouvait être intéressante à conserver(Univers Du Discours @ Merise).
// enfait je me suis trompé, je veux juste rajouter la colonne "gagnant" à ma table quiz.
C'est pas une nouvelle colonne mais une nouvelle table avec jointure(FK= foreign key= clé étrangère). Rajouter une nouvelle colonne c'est faux en terme d'analyse, sauf que je ne connait pas tout les tenants de la demande(une question est elle obligatoirement posée en live, etc...).
Quant à la première solution qui consiste à avoir une valeur par membre c'est lourd: ça oblige à enregistrer pour chaque question tout les membres(dans une autre table qui est liée à question(table) et membre(table)) et pas mal de contrainte d'intégrité qui vont ralentir le traitement(une question peut ne pas avoir de gagnant par exemple, tant que personne à répondu c'est le cas) ainsi que surcharger une table qui n'en as pas besoin+faire du développement inutile.
Avec la proposition que j'ai faite c'est uniquement la première réponse(juste làil faut se tourner vers php pour comparer) qui est envoyée qui est enregistrée, donc on a bien le gagnant à la seconde près.Le fait que sur une base les champs de date sont en secondes y change rien, ce n'est même pas nécessaire de le retenir mais j'ai estimé que cette donnée pouvait être intéressante à conserver(Univers Du Discours @ Merise).
// enfait je me suis trompé, je veux juste rajouter la colonne "gagnant" à ma table quiz.
C'est pas une nouvelle colonne mais une nouvelle table avec jointure(FK= foreign key= clé étrangère). Rajouter une nouvelle colonne c'est faux en terme d'analyse, sauf que je ne connait pas tout les tenants de la demande(une question est elle obligatoirement posée en live, etc...).
Quant à la première solution qui consiste à avoir une valeur par membre c'est lourd: ça oblige à enregistrer pour chaque question tout les membres(dans une autre table qui est liée à question(table) et membre(table)) et pas mal de contrainte d'intégrité qui vont ralentir le traitement(une question peut ne pas avoir de gagnant par exemple, tant que personne à répondu c'est le cas) ainsi que surcharger une table qui n'en as pas besoin+faire du développement inutile.
shoub-tcy
Messages postés
169
Date d'inscription
mardi 6 mars 2012
Statut
Membre
Dernière intervention
23 mai 2012
2
27 avril 2012 à 01:39
27 avril 2012 à 01:39
Ducoup j'ai trouvé une autre solution plus simple.
J'ai créé une colonne pseudo (clé étrangère) et pour le premier qui répond juste, sont pseudo s'affiche dans la colonne, et j'empêche l'affichage d'autre pseudo en mettant une simple condition du style si la colonne pseudo n'est pas vide alors vous n'avez pas été le premier à répondre juste.
J'ai créé une colonne pseudo (clé étrangère) et pour le premier qui répond juste, sont pseudo s'affiche dans la colonne, et j'empêche l'affichage d'autre pseudo en mettant une simple condition du style si la colonne pseudo n'est pas vide alors vous n'avez pas été le premier à répondre juste.
24 avril 2012 à 23:02
Enfet je me suis trompé, je veux juste rajouter la colonne "gagnant" à ma table quiz.
Mais comment mais je veux que sa soit plus précis que des minutes et des secondes justement.