2009-09-20 7 views
0

Je crée un système de planification pour mon école qui permet aux enseignants de réserver des chambres/véhicules. Je suis juste coincé sur un aspect: peupler le calendrier. Fondamentalement, il aura une vue mensuelle et hebdomadaire. La vue mensuelle que je vais bien coder, mais c'est la vue hebdomadaire sur laquelle je suis coincé.Remplir un calendrier Schedule

Les personnes qui insèrent des réservations seront en mesure de spécifier la date de la réservation, et le bloc (s) de la journée qu'il prend. Je pourrais recurring à travers les jours/blocs de la semaine, en cours d'exécution des requêtes sur ces jours et voir si quelque chose est réservé à ce moment-là, mais ce serait trop inefficace.

Ma deuxième idée était d'obtenir un horodatage pour le premier et le dernier jour de la semaine, puis de remplir un tableau associatif avec toutes ces dates. Ensuite, je pourrais recurse à travers les blocs de tous les jours et trouver des correspondances dans le tableau. C'est un peu mieux, mais cela semble toujours inefficace pour moi.

Y a-t-il une meilleure façon de procéder?

+0

Utilisez-vous une base de données? pourquoi ne faites-vous pas une requête pour tous les événements de cette semaine commandés par start datetime? Je ne vois pas plus efficace de le faire. votre projet inclut-il la récurrence? – RageZ

+0

Oui, en utilisant une base de données, et oui, il nécessite une récurrence. Et je ne peux pas simplement lister les événements .. Il doit être affiché dans les sections (il y a 6 blocs par jour) et si un bloc est planifié, ils ne peuvent pas planifier quoi que ce soit pendant ce bloc. – BraedenP

Répondre

1

Vous pouvez utiliser le calendrier rapide, c'est très simple, il vous suffit de passer une requête SQL à cela, il fonctionnera comme prévu.

vérifier ce tutoriel

http://www.evolt.org/quick_calendar_using_ajax_and_php

+0

Ils ont fini par avoir besoin de plus de fonctions personnalisées dans le calendrier, mais j'ai utilisé les maths sur ce site comme base pour calculer les jours de démarrage, etc. Merci beaucoup! – BraedenP

1

Sélectionnez tous les événements qui se produisent à des dates comprises entre le début et la fin de la semaine active, placez les résultats dans un tableau, puis bouclez les jours dans la semaine et vérifiez si les événements dans le tableau ont lieu jour actif.

+0

Ouais, c'est l'une des options que j'avais mises dans la question. Est-ce que ça va être assez efficace? Il aura quelques utilisateurs qui l'utilisent à la fois. – BraedenP

+0

Il sera probablement assez efficace puisque votre ensemble de données et le temps que vous passez en boucle sont assez faibles. La mise en cache/génération statique du contenu à chaque mise à jour de la planification est probablement une bien meilleure option que les micro-optimisations de code. – AvatarKava