Aide à la réflexion sur une requête mysql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Aide à la réflexion sur une requête mysql

Re: Aide à la réflexion sur une requête mysql

par Patriboom » 15 août 2020, 02:54

Eh oui, vas-y simplement avec ce que tu sais faire, cherche pas trop compliqué.
Tu fais un recherche pour la date,
puis tu fais une autre recherche sur les réservation pour voir si ton ti-copain y est.

Investir 10 heures de recherche et développement d'une requête complète en MySQL servirait s'il s'agissait d'une ligue mondiale avec des milliers et milliers d'inscrits. Mais à petite dose de la sorte, tu peux te permettre de faire travailler le serveur. Il ne rechignera pas, le temps de réponse ne sera pas perceptiblement affecté.

Re: Aide à la réflexion sur une requête mysql

par or 1 » 09 août 2020, 22:31

il ne faut pas chercher à résoudre le problème en sql, mais en traitant les données en php.
faire 2 requêtes sql pour récupérer les dates, les réservations, en les mettant dans 2 tableaux php. ensuite, faire une fonction php qui dit si un membre est inscrit à un événement pas encore passé et retourne si c'est le cas la date, faire une fonction php qui dit si l'événement est complet. récupérer l'info pour l'utilisateur s'il est déjà inscrit à une date. parcourir les dates et afficher en conséquence.

Aide à la réflexion sur une requête mysql

par Rickways » 09 août 2020, 16:16

Bonjour à tous,

dans le cadre de la crise sanitaire, j'essaie de mettre en place un planning de réservations pour les adhérents (club de badminton), afin que chacun puisse venir jouer.

J'ai fait un petit site avec un espace membre.

J'ai donc au total 3 tables dans ma base de données :

- table MEMBRE : idmembre, pseudo

- table RESERVDATE : iddate, date, date2, nbjoueurs (le champs date affiche la date aaaa-mm-jj, le champs date2 en texte : Lundi 17 août 2020)

- table RESERVATIONS : idreserv, iddate, idmembre (où iddate est le même que dans la table RESERVDATE, et idmembre est le même que dans la table MEMBRE)

CAS CONCRET :

Les dates ne peuvent accueillir que le nombre de joueurs prévu dans la table RESERVDATE (soit 15 joueurs par exemple) (impossibilité de s'inscrire si le nombre max est atteint)

Un joueur ne peut réserver qu'une seule date (jusqu'à ce que cette date soit passée) (exemple, il peut s'inscrire pour le Lundi 17 août 2020, mais ne pourra se réinscrire à une autre date qu'à partir du 18 août)

Un joueur doit pouvoir annuler son inscription.

AFFICHAGE CONCRET

(cas 1 : le membre ne s'est pas encore inscrit)

Lundi 17 aôut 2020 (Inscrits : 1/15) - M'INSCRIRE
Mercredi 19 aôut 2020 (Inscrits : 15/15) - COMPLET
Lundi 24 aôut 2020 (Inscrits : 1/15) - M'INSCRIRE
Mercredi 26 aôut 2020 (Inscrits : 1/15) - M'INSCRIRE
Lundi 31 aôut 2020 (Inscrits : 1/15) - M'INSCRIRE
Mercredi 2 septembre 2020 (Inscrits : 1/15) - M'INSCRIRE


(cas 2 : le membre est inscrit à une date)

Lundi 17 aôut 2020 (Inscrits : 1/15)
Mercredi 19 aôut 2020 (Inscrits : 15/15) - COMPLET
Lundi 24 aôut 2020 (Inscrits : 1/15)
Mercredi 26 aôut 2020 (Inscrits : 1/15)
Lundi 31 aôut 2020 (Inscrits : 1/15) - INSCRIT : Annuler mon inscription
Mercredi 2 septembre 2020 (Inscrits : 1/15)


Techniquement je sais afficher la liste des dates avec la requete :

Code : Tout sélectionner

$datedujour=date("Y-m-d"); $req='SELECT * FROM reservdate WHERE date > "'.$datedujour.'" LIMIT 6'; $result=mysqli_query($bdd,$req) or die ('requete impossible'); while($list= mysqli_fetch_array($result,MYSQLI_BOTH))
mais après je ne sais pas quelles jointures faire, il y a trop de conditions, je n'arrive pas à organiser la logique....

Merci d'avance pour votre aide.
Eric