IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

Réservation d'une salle, savoir si les heures sont déjà occupées


Sujet :

ASP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut Réservation d'une salle, savoir si les heures sont déjà occupées
    Bonsoir tout le monde,

    J'ai une page asp qui récupère dans des variables des données choisies par des listes déroulantes.

    C'est en fait la réservation d'une salle et les données récoltées sont :

    Jour de la réservation, mois de la réservation, heure de début et heure de fin de la réservation et nom de l'utilisateur qui réserve.

    Quand une personne réserve la salle, le code de ma page envoi sélectionne la table du mois, ensuite le jour, et met dans les différents champs de la table l'heure de début jusqu'à l'heure de fin.

    Ex: Monsieur Durand réserve la salle le 01 janvier de 12 à 16h00, le code réserve alors la table janvier, sélectionne le jour 01 et ensuite met durand dans 12, 13, 14 et 15 (pas 16 car à 15h59 la salle est libre pour quelqu'un d'autre)

    Il y'a donc une grosse partie du travail qui est fait.

    Maintenant, si une personne réserve la salle le 01 janvier, j'aimerais d'abord vérifier que la salle n'est pas déjà réservé par quelqu'un d'autre.

    Pour ce faire, j'ai trouvé le moyen de savoir si le mois, le jour et l'heure de début est déjà prise, idem pour l'heure de fin.

    Voici le code pour savoir si l'heure de début et l'heure de fin est déjà prise :

    Début :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if len(rst2("debut")) <> 0 then
    %>
    <script language= "javascript">
    alert('La salle informatique est déjà réservée, merci de vérifier la disponibilité') ;
    </script>
    <%
    response.End()
    End if
    Fin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if len(rst2("fin")) <> 0 then
    'response.write(rst2("fin"))
    '%>
    <script language= "javascript">
    alert('La salle informatique est déjà réservée, merci de vérifier la disponibilitée') ;
    </script>
    <%
    response.End()
    End if
    La chaîne SQL qui filtre les données et qui renomme les champs est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    checkSQL = "select [" & hfdebut & "] as debut, [" & hffin & "] as fin  from " & hfmois & " where jour = '" & hfjour & "' "
    Ma question :

    Comment savoir si les heures entre l'heure de début et l'heure de fin sont déjà occupées ?

    C'est là que je coince et ça fait maintenant presque deux semaines.

    Je perds vraiment beaucoup de temps sur la conception de cette application.

    Je vous remercie d'avance pour l'aide que vous m'apporterez.

    beegees

  2. #2
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,

    Tu as une colonne par heure pour chaque jour?

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Salut Immobilis,

    Oui j'ai une collone pour chaque heure.

    Tu crois que je pourrai faire ce que je veux ?

    Merci
    beegees

  4. #4
    Membre Expert
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut
    Re,

    Tu te souviens de ce que je t'avais dit ? Les problèmes commencent !
    Si tu avais une table de ce genre :

    IdUser
    LaDate
    HDeb
    Hfin

    Tu faisais un select qui vérifie pour la date que les heures saisies ne chevauchent pas les heures dans ta table.

    Mais bon, pour ta question, je ferai une boucle dans ce genre là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Tant que debut <= fin
       select debut.....
       debut = debut + 1
    Fin tant que

  5. #5
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Salut PC75,

    Merci pour ton pseudo-code et pour ton avertissement

    J'ai suivi ton conesil niveau pseudo-code et voici ce que ça donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    do while fin <= debut
    fin = fin - 1
    checkSQL = "select [" & hffin & "] as fin  from " & hfmois & " where jour = '" & hfjour & "' "
    if len(rst2("fin")) <> 0 then
    %>
    <script language= "javascript">
    alert('La salle informatique est déjà réservée, merci de vérifier la disponibilité') ;
    </script>
    <%
    response.End()
    End if
    loop
    Le problème est que ça à l'air de tourner fou.
    Active Server Pages (ASP) erreur 'ASP 0113'

    Délai d'exécution du script dépassé

    /RSI/recup_rsi.asp

    Le délai maximal d'exécution d'un script a été dépassé. Vous pouvez changer cette limite en donnant une nouvelle valeur à la propriété Server.ScriptTimeout ou en changeant la valeur dans les outils d'administration d'IIS.

    En plus, je sais pas où mettre le select car il me dit "Case attendu".

    Qu'en penses-tu ?

    Merci d'avance.

    beegees

  6. #6
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Re-bonjour,

    Quand je fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    do while varhffin <= varhfdebut
    varhffin = varhffin - 1
    response.write("ok")
    loop
    varhffin correspond à la valeur récupérée par la liste déroulante de la page HTML.

    J'ai mis le suffixe var devant les variables car j'avais donné le même nom aux tables et à mes variables.

    Et voici l'erreur que j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Microsoft OLE DB Provider for ODBC Drivers erreur '80040e14' 
     
    [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe dans la clause FROM. 
     
    /RSI/recup_rsi.asp, ligne 50
    La ligne 50 correspond à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rst2.open checkSQL, "RSI"
    La chaîne SQL utilisée est la suivante (ligne 47):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    checkSQL = "select [" & hfdebut & "] as debut, [" & hffin & "] as fin  from " & hfmois & " where jour = '" & hfjour & "' "
    Qu'en pensez-vous ?

    Merci d'avance pour votre aide.

    beegees

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 03/05/2009, 13h45
  2. Réponses: 1
    Dernier message: 14/05/2007, 19h35
  3. Réponses: 6
    Dernier message: 27/09/2006, 19h31
  4. Comment savoir si les ScrollBar sont visibles sur un TRichEdit ?
    Par vanquish dans le forum Composants VCL
    Réponses: 2
    Dernier message: 16/10/2003, 10h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo