Order by [Résolu]

Signaler
Messages postés
9
Date d'inscription
vendredi 18 juillet 2003
Statut
Membre
Dernière intervention
28 décembre 2007
-
Messages postés
9
Date d'inscription
vendredi 18 juillet 2003
Statut
Membre
Dernière intervention
28 décembre 2007
-
Bonjour, je bloque sur un petit problème de syntaxe :

Je désire créer un order by Asc dans cette requète :

<% 
 sql = "SELECT produits.* FROM  produits WHERE Id_cat="&request.querystring("categorie")
 Set prod = Server.CreateObject("ADODB.Recordset")
    prod.Open sql, conn, 3, 3
%>
Il me semblait que la syntaxe était :

<% 
sql = "SELECT produits.* FROM produits WHERE Id_cat='"&request.querystring("categorie")&"' order by Id_Prod Asc
 Set prod = Server.CreateObject("ADODB.Recordset")
    prod.Open sql, conn, 3, 3
%>

Cela m'indique : Constante chaîne non terminée

Il me manque un truc et je ne sais plus quoi, je bloque ...

Pourriez vous me renseigner ?

En vous remerciant par avance.

15 réponses

Messages postés
9
Date d'inscription
vendredi 18 juillet 2003
Statut
Membre
Dernière intervention
28 décembre 2007

Ok j'ai trouvé. Merci à tous pour votre aide, c'était un problème de syntaxe. Il fallait remplacer la ligne qui me posait problème par :
sql = "SELECT produits.* FROM produits WHERE Id_cat="&request.querystring("categorie") & " order by Id_Prod desc"

ça tenait à pas grand chose en fait ;)
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
Ajoute ceci à ta lib que tu inclueras à ton code :

Public Function Pure (S)
 Pure = Replace(S,"'","''")
End Function

Et remplace sql = "SELECT produits.* FROM produits WHERE Id_cat=" & request.querystring("categorie") & " order by Id_Prod desc" par sql = "SELECT produits.* FROM produits WHERE Id_cat=" & Pure(request.querystring("categorie")) & " order by Id_Prod desc"

Ca va éviter que tu te faces dropper ta table !!
_______________________________________________________________________
VB.NETis good ...VB6is better
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
oui : sql = "SELECT produits.* FROM produits WHERE Id_cat='" & Request.Querystring("categorie") & "' order by Id_Prod Asc"
_______________________________________________________________________
VB.NETis good ...VB6is better <f></f>
Messages postés
9
Date d'inscription
vendredi 18 juillet 2003
Statut
Membre
Dernière intervention
28 décembre 2007

Merci ghuysmans99, l'erreur débile par excellence mais je bloquais complètement :)
Thanks !
Messages postés
9
Date d'inscription
vendredi 18 juillet 2003
Statut
Membre
Dernière intervention
28 décembre 2007

Mais bien sur ça plante encore, lorsque j'ajoute la bonne requète avec le " en plus ça me met :


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.


.../products_base.asp, ligne 18 Microsoft OLE DB Provider for ODBC Drivers erreur '80040e07'

Je ne comprend pas ...
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Bonjour,

si tu vas sur "tapage.aspx?categorie='; drop table produits --", il se passe quoi ?

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
Messages postés
9
Date d'inscription
vendredi 18 juillet 2003
Statut
Membre
Dernière intervention
28 décembre 2007

Bonjour, ça me met :

Microsoft OLE DB Provider for ODBC Driverserreur '80040e14'

[Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe dans la chaîne dans l'expression 'Id_cat=Id_Cat'; drop table produits id_Prod",'.

/.../products_base.asp, ligne 13
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
Au fait, il faut faire :

Ceci dans une lib appelée "Lib.asp" --v

<%
Public Function Pure(S)
 Pure = Replace(S,"'","''")
End Function 'Pure(S)
%>

----------------------------------------

Ceci dans ton fichier ASP --v

<!-- #include file="Lib.asp" -->
<%
Dim SQL
Dim prod
SQL = "SELECT produits.* FROM produits WHERE Id_cat='" & Pure(Request.QueryString("categorie")) & "' order by Id_Prod Asc"
Set prod = Server.CreateObject("ADODB.Recordset")
Set prod = Conn.Execute(SQL)
%>
_______________________________________________________________________
VB.NETis good ...VB6is better <f></f>
Messages postés
9
Date d'inscription
vendredi 18 juillet 2003
Statut
Membre
Dernière intervention
28 décembre 2007

Bonsoir ghuysmans99, j'ai suivi à la lettre ce que tu m'as indiqué et voici le nouveau message d'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.




/jerome/products_base.asp
, ligne 17
:

Le source que tu m'as donné :

<!-- #include file="lib.asp" -->
<%
Dim SQL
Dim prod
SQL = "SELECT produits.* FROM produits WHERE Id_cat='" & Pure(Request.QueryString("categorie")) & "' order by Id_Prod Asc"
Set prod = Server.CreateObject("ADODB.Recordset")
Set prod = Conn.Execute(SQL)
%>

Merci pour l'aide.
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
oups il faut retirer la ligne
Set prod = Server.CreateObject("ADODB.Recordset")
_______________________________________________________________________
VB.NETis good ...VB6is better <f></f>
Messages postés
9
Date d'inscription
vendredi 18 juillet 2003
Statut
Membre
Dernière intervention
28 décembre 2007

ça ne change rien ...
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
Mais qu'y a-t-il dans Request.QueryString("categorie") ??
_______________________________________________________________________
VB.NETis good ...VB6is better <f></f>
Messages postés
9
Date d'inscription
vendredi 18 juillet 2003
Statut
Membre
Dernière intervention
28 décembre 2007

C'est ce qui me permet d'afficher les catégories en fonction de que demande le client ...
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
T'aurais du le dire plus tôt que c'était un nombre et pas une chaîne de caractères ...
Au fait, fais réponse acceptée sur le post juste avant le mien !
_______________________________________________________________________
VB.NETis good ...VB6is better <f></f>
Messages postés
9
Date d'inscription
vendredi 18 juillet 2003
Statut
Membre
Dernière intervention
28 décembre 2007

Ah oui, merci :)