2011-07-08 1 views
0

J'essaye de développer un outil pour un client qui renvoie tous les utilisateurs disponibles pour un jour et une heure donnés de la semaine. Par exemple, l'utilisateur saisira son planning hebdomadaire actuel et la base de données stockera ce planning. Chaque ligne de cette table contiendra le nom d'utilisateur, le jour de la semaine, l'heure de début de l'indisponibilité et l'heure de fin de l'indisponibilité. Si le client doit entrer un jour, une heure de début et une heure de fin, je souhaite que le script renvoie tous les utilisateurs disponibles pour cette période. Avez-vous des idées pour aborder ce problème? Plus précisément, je cherche le moyen le plus efficace de stocker l'information et de la traiter. Toute aide serait grandement appréciée. Voici un exemple de structure de table possible:Comment créer un script de disponibilité en utilisant PHP et MySQL en fonction des entrées de planning?

UserName  DayOfWeek  StartTime  EndTime //Times when unavailable 
jdoe   Mon   09:30:00  10:30:00 
jdoe   Mon   11:30:00  12:45:00 
jdoe   Tue   14:50:00  16:20:00 
hsmith  Wed   16:20:00  17:55:00   

Répondre

0

Stockez les heures de début et de fin comme des dates, par exemple. 2011-01-01 09:00:00 alors pour la disponibilité que vous pourriez faire quelque chose comme

SELECT * 
    FROM userTable 
    WHERE userName NOT IN (SELECT userName 
          FROM userTable 
          WHERE #{date to check} BETWEEN startTime AND endTime) 

Je n'ai pas essayé cela et il y a une certaine normalisation à faire, mais devrait être un point de départ

+0

de Merci! Cela fonctionne pour tester une seule fois (7/4/2011 09:00), mais si je veux vérifier une gamme? (7/4/2011 9h00-10h00) –

Questions connexes