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 :

Application web réservation salles ASP


Sujet :

ASP

  1. #101
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 90
    Points : 8
    Points
    8
    Par défaut
    Alors j'ai essayé avec Access qui marche avec le code SQL suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT *
    FROM Salle
    WHERE (((Salle.lieu) = [Entrez la ville]) 
    AND ((Salle.Visio) = [Entrer 0 ou 1 : 0 = false et -1 = true]))
    AND ((Salle.Capacite) >= [Entrez la capacité])
    ORDER BY Salle.Visio, Salle.lieu;
    MAIS le problème c'est que si je peux mettre superieur ou égal à Capacité, je ne peux pas choisir d'afficher seulement les salles qui ont une visio, et toute les salles dans le cas suivant, alors que je voudrais justement pouvoir donner le choix à l'utilisateur: soit il choisit la visio et on lui affiche UNIQUEMENT les salles avec visio, soit il choisit "Sans opinion" et dans ce cas on lui affiche toutes les salles. Comment le coder puisque c'est en binaire ? Je change et je met en numérique ?

    Pareil pour les "non renseigné" des listes déroulante: si l"utilisateur laisse non renseigné, alors on doit lui afficher toutes les salles, mais quelle sera sa valeur "value" ?

    Voici l'ASP:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    <%
    ' On récupère les infos du formulaire de saisie
     
    	Set rs_choix = Server.CreateObject("ADODB.Recordset")
    	sql = "Select * from Salle " 																'Sélectionner tous les éléments de la salle dans la table salle
    	sql = sql & "where 1 = 1 "																	'pour que la condition soit toujours vraie
     
    	if Len(Trim(request.form("S_Lieu"))) > 0 then			      							'Si l'utilisateur choisi un lieu 
    		sql = sql & "And Salle.Lieu = '" & request.form("S_Lieu") & "'"							'alors on rajoute le lieu à Where
    	end if
     
    	if Len(Trim(request.form("S_Cap"))) > 0 then				  							'Si l'utilisateur choisi une capacité 
    		sql = sql & " And Salle.Capacite = '" & request.form("S_Cap") & "'" 								'alors on rajoute la capacité à Where
    	end if
     
    	if Len(Trim(request.form("S_Visio"))) = true then 				  							'Si l'utilisateur veut la visio
    		sql = sql & "And Salle.Visio = '" & request.form("S_Visio") & "'"							'alors on rajoute la visio à Where  			
    	end if
     
    	sql = sql & "Order By Salle.Visio, Salle.Lieu"  														'ordonne par ordre alphabetique et par salle visio
     
    	response.write "<table>"
     
    	rs_choix.Open SQL,bd,3,3
     	if not rs_choix.eof then																'Si le choix correspond à* une requete
     
    		do while not rs_choix.eof
     
    			response.write "<tr><td>" & rs_choix("Nom")
    			'response.write "<tr><td>" & rs_choix("Nom") & "</td><td> " & rs_choix("Etage") & "</td><td> " & rs_choix("Lieu") & "</td><td> " & rs_choix("Capacite") & "</td><td> " & rs_choix("Visio") & "</td><td align=""center""> <input type=""radio"" name=""Salle"" value="" " & rs_choix("ID_Salle") & """/> </td></tr>" 
    			rs_choix.MoveNext
     
    		loop
    		response.write "</table>"
     
     
    	else																					'Sinon afficher un message d'erreur.
     
    		response.write "<tr><td colspan=""3"" align=""center""><br/><b><font color=""red"">Aucune salle ne correspond à*vos critères, veuillez réitérer votre recherche.</font></b><br/>&nbsp;</td></tr>"
    	end if	
     
    	rs_choix.Close
    	set rs_choix = nothing
    %>

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Dans tes listes déroulantes, tu fais comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <SELECT id="capacite" name="S_Cap" style= "width:135px; margin-left:10px">
    <OPTION value="ALL"> Non-renseigné</option>
    <OPTION value="2"> 3 personnes</option>
    </SELECT>
    Et pour construire la requête, au lieu de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	if Len(Trim(request.form("S_Cap"))) > 0 then				  							'Si l'utilisateur choisi une capacité 
    		sql = sql & " And Salle.Capacite = '" & request.form("S_Cap") & "'" 								'alors on rajoute la capacité à Where
    	end if
    Tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	if request.form("S_Cap") <> "ALL" then				  							'Si l'utilisateur choisi une capacité 
    		sql = sql & " And Salle.Capacite = '" & request.form("S_Cap") & "'" 								'alors on rajoute la capacité à Where
    	end if

  3. #103
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 90
    Points : 8
    Points
    8
    Par défaut
    ça ne marche ni avec les villes, ni avec les capacités. J'ai toujours le message d'erreur que j'ai créé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if Len(Trim(request.form("S_Lieu"))) <> "All" then	 
    	sql = sql & "And Salle.Lieu = '" & request.form("S_Lieu") & "'"							
               end if
               if Len(Trim(request.form("S_Cap"))) <> "All" then				  							
    	sql = sql & " And Salle.Capacite = '" & request.form("S_Cap") & "'" 								
               end if
    Quand les villes je les choisis une par une c'est bon mais lorsque je fais all c'est le message d'erreur.
    Pour les capacités, que cela soit non renseigné ou pour chaque capacité, rien ne marche = toujours le message d'erreur.

  4. #104
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 90
    Points : 8
    Points
    8
    Par défaut
    Saisie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <Font color = #000000 Style= "margin-left:15px"> Lieu: <SELECT id="lieu" name="S_Lieu" style= "width:135px; margin-left:5px">
    													<OPTION value="All"> Non-renseigné <!-- marche pas vu que la valeur * n'existe pas demander info -->
    													<OPTION value="Albi"> Albi
    													<OPTION value="Auch"> Auch
    													<OPTION value="Cahors"> Cahors
    													<OPTION value="Foix"> Foix								
    													<OPTION value="Montauban"> Montauban
    													<OPTION value="Rodez"> Rodez								
    													<OPTION value="Tarbes"> Tarbes
    													<OPTION value="Toulouse"> Toulouse
     
    												</SELECT>
     
    						<Font color = #000000 Style= "margin-left:25px"> Capacité: <SELECT id="cap" name="S_Cap" style= "width:135px; margin-left:10px">
    													<OPTION value="All"> Non-renseigné
    													<OPTION value=3> 3 personnes 
    													<OPTION value=8> 8 personnes
    													<OPTION value=10> 10 personnes
    													<OPTION value=11> 11 personnes
    													<OPTION value=12> 12 personnes
    													<OPTION value=15> 15 personnes
    													<OPTION value=19> 19 personnes
    													<OPTION value=20> 20 personnes
    													<OPTION value=22> 22 personnes
    													<OPTION value=23> 23 personnes
    													<OPTION value=40> 40 personnes

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Tu as mal recopié le code que je t'ai donné.

    Au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if Len(Trim(request.form("S_Lieu"))) <> "All" then
    ...
    C'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if request.form("S_Lieu") <> "All" then
    ...

  6. #106
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 90
    Points : 8
    Points
    8
    Par défaut
    Ah pardon. Les "Non renseigné" marchent mais le problème c'est que la capacité a toujours un problème dès que je met une capacité dans la liste roulante.
    Je ne comprend pas très bien étant donné que j'ai mis comme values les données de la bases de données comme par exemple:

    Sur le fichier saisie.asp:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    <OPTION value="All"> Non-renseigné
    <OPTION value=3> 3 personnes 
    <OPTION value=8> 8 personnes
    <OPTION value=10> 10 personnes
    <OPTION value=11> 11 personnes
    <OPTION value=12> 12 personnes
    <OPTION value=15> 15 personnes
    <OPTION value=19> 19 personnes
    <OPTION value=20> 20 personnes
    <OPTION value=22> 22 personnes
    <OPTION value=23> 23 personnes
    <OPTION value=40> 40 personnes
    Sur le fichier choix.asp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if request.form("S_Cap") <> "All" then				  							'Si l'utilisateur choisi une capacité 
    sql = sql & " And Salle.Capacite = '" & request.form("S_Cap") & "'" 								'alors on rajoute la capacité à Where
    end if
    Et sur la base de données:

    Capacite
    3
    8
    8
    8
    10
    10
    11
    12
    12
    12
    12
    15
    15
    19
    20
    20
    22
    23
    40

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Ton champ capacite est de quel type ?

  8. #108
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 90
    Points : 8
    Points
    8
    Par défaut
    numérique, et il marche sur Access...

  9. #109
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 90
    Points : 8
    Points
    8
    Par défaut
    Sachant que pour les oui/non (vrai/faux) ça ne marche pas non plus (j'ai essayé en texte: le "All" marche mais pas le oui/true).

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Si le champ capacite est numérique, il ne faut pas d'apostrophes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sql = sql & " And Salle.Capacite = " & request.form("S_Cap") & " "

  11. #111
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 90
    Points : 8
    Points
    8
    Par défaut
    Lorsque je mets:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    if request.form("S_Cap") <> "All" then				  														'Si l'utilisateur choisi une capacité 
    		sql = sql & " And Salle.Capacite = " & request.form("S_Cap") & " " 								'alors on rajoute la capacité à Where
    	end if
    ça me donne l'erreur:

    Microsoft OLE DB Provider for ODBC Drivers erreur '80040e07'
    [Microsoft][Pilote ODBC Microsoft Access] Type de données incompatible dans l'expression du critère.

    Par contre pour la visio c'est parfait. Donc pour récapituler, en laissant en commentaire la capacité, le lieu et la visio marchent parfaitement bien.

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Est-ce que cette requête passe directement dans Access ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from salle where capacite = 10

  13. #113
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 90
    Points : 8
    Points
    8
    Par défaut
    ça marche oui.

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Si tu fais ça, tu obtiens quoi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    response.write request.form("S_Cap")

  15. #115
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 90
    Points : 8
    Points
    8
    Par défaut
    Si je fais ça en mettant Non renseigné, ça donne "All" si je mets 3 personnes ça met 3 etc..

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Tu peux refaire un response.write sql pour voir à quoi ressemble la requête après toutes ces modifications.
    (juste avant rs_choix.Open SQL,bd,3,3).

  17. #117
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 90
    Points : 8
    Points
    8
    Par défaut
    Voilà le résultat:

    Select * from Salle where 1 = 1 And Salle.Lieu = 'Toulouse' And Salle.Capacite >= 12
    Microsoft OLE DB Provider for ODBC Drivers erreur '80040e07'

    [Microsoft][Pilote ODBC Microsoft Access] Type de données incompatible dans l'expression du critère.

    /Autanv4/AutanPrive/Reservation/choix.asp, ligne 132


    C'est pareil si je change le >= 12 par un simple =.

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Si tu fais un copier/coller de cette requête dans Access, ça passe ?

  19. #119
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 90
    Points : 8
    Points
    8
    Par défaut
    Oui, ça marche.

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Cela signifie donc que ton champ capacite est bien numérique et qu'il ne faut pas d'apostrophes.

    Si tu copie/colle ça dans Access, ça passe aussi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Select * from Salle where 1 = 1 And Salle.Lieu = 'Toulouse' And Salle.Capacite >= '12'

+ Répondre à la discussion
Cette discussion est résolue.
Page 6 sur 8 PremièrePremière ... 2345678 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/05/2009, 17h15

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