Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2543 connectés 

  FORUM HardWare.fr
  Programmation
  ASP

  [ASP]Probleme fonctionnement moteur de recherche

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ASP]Probleme fonctionnement moteur de recherche

n°1330485
itachi64
Posté le 22-03-2006 à 19:17:39  profilanswer
 

Bonjour,
 
J’ai actuellement un petit problème avec un moteur de recherche que j’essaie de faire fonctionner.  
En effet ce dernier doit me permettre de rechercher des informations (le nom d’un étudiant)  dans une table appelée étudiant à partir soit de son nom ou soit de son année de promotion (présent dans une autre table appelée promotion). Le lien entre ces 2 tables étant un code promotion.
 
En essayant de le faire fonctionner, le logiciel me présente une erreur sur la requête SQL à exécuter.  
 
Voila le code qui pose problème
 
Table e = table étudiant
Table p = table promotion
 

Code :
  1. query = "SELECT DISTINCT e.code_etudiant, e.nom_etudiant FROM Etudiant AS e INNER JOIN Promotion AS p ON e.code_promotion = p.code_promotion"
  2. if request.querystring("nom" ) <> "" Then
  3. issetName = 1
  4. select case request.QueryString("type" )
  5.  case "0"
  6.   nom = "Nom LIKE '" & request.querystring("nom_etudiant" ) & "%'"
  7.  case "1"
  8.   nom = "Nom LIKE '%" & request.querystring("nom_etudiant" ) & "%'"
  9.  case "2"
  10.   nom = "Nom LIKE '%" & request.querystring("nom_etudiant" ) & "'"
  11. end select
  12. End If
  13. if request.querystring("annee" ) <> "" Then
  14. issetAnnee = 1
  15. annee = "e.code_promotion=p.code_promotion AND p.annee_promotion" & request.querystring("annee_promotion" )
  16. End If
  17. ' construction de la requete
  18. if issetName = 1 AND issetAnnee = 1 Then
  19. query = query & " WHERE " & nom & " AND " & annee
  20. ElseIf issetName=1 Then
  21. query = query & " WHERE " & nom
  22. ElseIf issetAnnee=1 Then
  23. query = query & " WHERE " & annee
  24. End If
  25. set rs = Server.CreateObject("ADODB.Recordset" )
  26. ' Pagination
  27. rs.pageSize = vpagesize
  28. rs.Open query , connect,3,3


 
Si quelqu’un pouvait m’aider à résoudre ce problème, ça serait vraiment sympa car je bloque dessus depuis pas mal de temps
 
Merci

mood
Publicité
Posté le 22-03-2006 à 19:17:39  profilanswer
 

n°1330948
THX
Eleveur de Big Jim de Paris.
Posté le 23-03-2006 à 12:17:48  profilanswer
 

Salut,  
 
A quoi correspond ton request.QueryString("type" ) et le select case qui va avec ?  
 
L'erreur c'est quoi ?

n°1330968
itachi64
Posté le 23-03-2006 à 12:48:23  profilanswer
 

En fait, tu avais raison car "type" ne correspondait à rien dans nos tables, je l'ai donc remplacé par nom_etudiant, mais sans résultat...
 
Voici l'erreur qu'il m'affiche lorque l'on recherche sur le nom:
 
[Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe (opérateur absent) dans l'expression 'Etudiant.code_promotion = Promotion.code_promotion WHERE'.

n°1331043
THX
Eleveur de Big Jim de Paris.
Posté le 23-03-2006 à 14:12:14  profilanswer
 

Code :
  1. query = "SELECT DISTINCT Etudiant.code_etudiant, Etudiant.nom_etudiant, Promotion.annee_promotion
  2. FROM Etudiant INNER JOIN Promotion ON Etudiant.code_promotion = Promotion.code_promotion"
  3. if request.querystring("nom" ) <> "" Then
  4. Requete = 1
  5. nom = " (nom_etudiant LIKE '%" & request.querystring("nom" ) & "%') "
  6. End If
  7. if request.querystring("annee" ) <> ""  Then
  8. Requete = 2
  9. annee = " (annee_promotion='" & request.querystring("annee" ) &"') "
  10. End If
  11. if request.querystring("annee" ) <> "" AND request.querystring("nom" ) <> "" Then
  12. Requete = 3
  13. End If
  14. ' construction de la requete
  15. Select case Requete
  16. Case "1"
  17. query = query & " WHERE " & nom & " "
  18. Case "2"
  19. query = query & " WHERE " & annee & " "
  20. Case "3"
  21. query = query & " WHERE " & nom & " AND " & annee & " "
  22. Case else
  23. query = query
  24. End select
  25. set rs = Server.CreateObject("ADODB.Recordset" )


 
 
Essaye ça mais c'est vraiment du "basique". Tu risques d'avoir des erreurs et des problèmes avec des noms contenants des caractères spéciaux et divers petites choses un peu longue à expliquer.

Message cité 2 fois
Message édité par THX le 23-03-2006 à 14:13:01
n°1331744
itachi64
Posté le 24-03-2006 à 14:34:19  profilanswer
 

Salut
 
Merci beaucoup pour ton aide, ton code marche nickel et mon moteur fonctionne parfaitement
 
++
 
 

THX a écrit :

Code :
  1. query = "SELECT DISTINCT Etudiant.code_etudiant, Etudiant.nom_etudiant, Promotion.annee_promotion
  2. FROM Etudiant INNER JOIN Promotion ON Etudiant.code_promotion = Promotion.code_promotion"
  3. if request.querystring("nom" ) <> "" Then
  4. Requete = 1
  5. nom = " (nom_etudiant LIKE '%" & request.querystring("nom" ) & "%') "
  6. End If
  7. if request.querystring("annee" ) <> ""  Then
  8. Requete = 2
  9. annee = " (annee_promotion='" & request.querystring("annee" ) &"') "
  10. End If
  11. if request.querystring("annee" ) <> "" AND request.querystring("nom" ) <> "" Then
  12. Requete = 3
  13. End If
  14. ' construction de la requete
  15. Select case Requete
  16. Case "1"
  17. query = query & " WHERE " & nom & " "
  18. Case "2"
  19. query = query & " WHERE " & annee & " "
  20. Case "3"
  21. query = query & " WHERE " & nom & " AND " & annee & " "
  22. Case else
  23. query = query
  24. End select
  25. set rs = Server.CreateObject("ADODB.Recordset" )


 
 
Essaye ça mais c'est vraiment du "basique". Tu risques d'avoir des erreurs et des problèmes avec des noms contenants des caractères spéciaux et divers petites choses un peu longue à expliquer.


n°1331754
itachi64
Posté le 24-03-2006 à 14:42:00  profilanswer
 

Salut
 
Merci beaucoup pour ton aide, ton code marche nickel et mon moteur fonctionne parfaitement
 
++
 
 

THX a écrit :

Code :
  1. query = "SELECT DISTINCT Etudiant.code_etudiant, Etudiant.nom_etudiant, Promotion.annee_promotion
  2. FROM Etudiant INNER JOIN Promotion ON Etudiant.code_promotion = Promotion.code_promotion"
  3. if request.querystring("nom" ) <> "" Then
  4. Requete = 1
  5. nom = " (nom_etudiant LIKE '%" & request.querystring("nom" ) & "%') "
  6. End If
  7. if request.querystring("annee" ) <> ""  Then
  8. Requete = 2
  9. annee = " (annee_promotion='" & request.querystring("annee" ) &"') "
  10. End If
  11. if request.querystring("annee" ) <> "" AND request.querystring("nom" ) <> "" Then
  12. Requete = 3
  13. End If
  14. ' construction de la requete
  15. Select case Requete
  16. Case "1"
  17. query = query & " WHERE " & nom & " "
  18. Case "2"
  19. query = query & " WHERE " & annee & " "
  20. Case "3"
  21. query = query & " WHERE " & nom & " AND " & annee & " "
  22. Case else
  23. query = query
  24. End select
  25. set rs = Server.CreateObject("ADODB.Recordset" )


 
 
Essaye ça mais c'est vraiment du "basique". Tu risques d'avoir des erreurs et des problèmes avec des noms contenants des caractères spéciaux et divers petites choses un peu longue à expliquer.



Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASP

  [ASP]Probleme fonctionnement moteur de recherche

 

Sujets relatifs
probleme cookies de sessionproblème de compilation avec eclipse
probleme d'analyseprobleme de debutant
Problème de déploiement d'un fichier cabPROBLÈME MACRO EXCEL
problème d'utisisation du logiciel fashprobleme vba outlook
PROBLÈME AVEC MACRO SUR EXCELProblème de conversion JavaMail
Plus de sujets relatifs à : [ASP]Probleme fonctionnement moteur de recherche


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR