[ASP]Probleme fonctionnement moteur de recherche

Probleme fonctionnement moteur de recherche [ASP] - ASP - Programmation

Marsh Posté le 22-03-2006 à 19:17:39    

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

Reply

Marsh Posté le 22-03-2006 à 19:17:39   

Reply

Marsh Posté le 23-03-2006 à 12:17:48    

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

Reply

Marsh Posté le 23-03-2006 à 12:48:23    

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'.

Reply

Marsh Posté le 23-03-2006 à 14:12:14    

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
Reply

Marsh Posté le 24-03-2006 à 14:34:19    

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.


Reply

Marsh Posté le 24-03-2006 à 14:42:00    

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.


Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed