Order by

Résolu
jeromep50 Messages postés 9 Date d'inscription vendredi 18 juillet 2003 Statut Membre Dernière intervention 28 décembre 2007 - 17 déc. 2007 à 19:47
jeromep50 Messages postés 9 Date d'inscription vendredi 18 juillet 2003 Statut Membre Dernière intervention 28 décembre 2007 - 28 déc. 2007 à 09:12
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

jeromep50 Messages postés 9 Date d'inscription vendredi 18 juillet 2003 Statut Membre Dernière intervention 28 décembre 2007
19 déc. 2007 à 19:06
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 ;)
3
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
27 déc. 2007 à 23:46
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
3
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
17 déc. 2007 à 22:39
oui : sql = "SELECT produits.* FROM produits WHERE Id_cat='" & Request.Querystring("categorie") & "' order by Id_Prod Asc"
_______________________________________________________________________
VB.NETis good ...VB6is better <f></f>
0
jeromep50 Messages postés 9 Date d'inscription vendredi 18 juillet 2003 Statut Membre Dernière intervention 28 décembre 2007
17 déc. 2007 à 22:56
Merci ghuysmans99, l'erreur débile par excellence mais je bloquais complètement :)
Thanks !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jeromep50 Messages postés 9 Date d'inscription vendredi 18 juillet 2003 Statut Membre Dernière intervention 28 décembre 2007
17 déc. 2007 à 23:05
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 ...
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
17 déc. 2007 à 23:15
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
0
jeromep50 Messages postés 9 Date d'inscription vendredi 18 juillet 2003 Statut Membre Dernière intervention 28 décembre 2007
18 déc. 2007 à 10:03
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
0
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
18 déc. 2007 à 17:10
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>
0
jeromep50 Messages postés 9 Date d'inscription vendredi 18 juillet 2003 Statut Membre Dernière intervention 28 décembre 2007
18 déc. 2007 à 21:31
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.
0
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
18 déc. 2007 à 22:42
oups il faut retirer la ligne
Set prod = Server.CreateObject("ADODB.Recordset")
_______________________________________________________________________
VB.NETis good ...VB6is better <f></f>
0
jeromep50 Messages postés 9 Date d'inscription vendredi 18 juillet 2003 Statut Membre Dernière intervention 28 décembre 2007
18 déc. 2007 à 23:00
ça ne change rien ...
0
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
19 déc. 2007 à 00:42
Mais qu'y a-t-il dans Request.QueryString("categorie") ??
_______________________________________________________________________
VB.NETis good ...VB6is better <f></f>
0
jeromep50 Messages postés 9 Date d'inscription vendredi 18 juillet 2003 Statut Membre Dernière intervention 28 décembre 2007
19 déc. 2007 à 18:55
C'est ce qui me permet d'afficher les catégories en fonction de que demande le client ...
0
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
20 déc. 2007 à 09:15
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>
0
jeromep50 Messages postés 9 Date d'inscription vendredi 18 juillet 2003 Statut Membre Dernière intervention 28 décembre 2007
28 déc. 2007 à 09:12
Ah oui, merci :)
0
Rejoignez-nous