Avatar billede jnissen Nybegynder
17. august 2001 - 00:04 Der er 34 kommentarer og
1 løsning

Order by.....

Hejsa

Jeg bruger denne kode til mit søgescript:
strSQL = \"SELECT ID, navn, adresse, city FROM info WHERE\"
strSQL = strSQL & \" (navn LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (adresse LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (city LIKE \'%\" & strKeyword & \"%\')\"

Men hvordan tilføjer jeg så denne:
ORDER BY \"& Request.QueryString(\"orderby\")

Så jeg kan vælge hvordan i skal sorteres??

Mvh. Jacob
Avatar billede jnissen Nybegynder
17. august 2001 - 00:05 #1
Der skulle så....hvordan de skal sorteres :-)
Avatar billede keysersoze Ekspert
17. august 2001 - 00:05 #2
strSQL = \"SELECT ID, navn, adresse, city FROM info WHERE\"
strSQL = strSQL & \" (navn LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (adresse LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (city LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" ORDER BY \"& Request.QueryString(\"orderby\")\"


Avatar billede erikjacobsen Ekspert
17. august 2001 - 00:06 #3
Tilføj

strSQL = strSQL & \" ORDER BY \"& Request.QueryString(\"orderby\")
Avatar billede jnissen Nybegynder
17. august 2001 - 00:09 #4
Tak for hjælpen - det var jo faktisk meget simpelt :-)

Men det virker dog ikke helt. Nu nøjes den ikke med at vise dem der blev søgt efter, nu viser den alle poster i databasen.

Hvordan kan det være?
Avatar billede erikjacobsen Ekspert
17. august 2001 - 00:11 #5
hvis din strKeyword er tom, vil den vise alle
Avatar billede jnissen Nybegynder
17. august 2001 - 00:17 #6
Jeg tror ikke den er tom.
Avatar billede erikjacobsen Ekspert
17. august 2001 - 00:18 #7
tror?
Avatar billede jnissen Nybegynder
17. august 2001 - 00:18 #8
Er dette forkert??
<form method=\"POST\" action=\"search.asp?orderby=navn\">
Avatar billede jnissen Nybegynder
17. august 2001 - 00:21 #9
Hel min kode ser sådan ud:

<%
strKeyword = Trim(Request.Form(\"Keyword\"))

If Len(strKeyword) = 0 Then
    Response.Clear
    Response.Redirect(\"default.asp\")
Else
    strKeyword = Replace(strKeyword,\"\'\",\"\'\'\")
End If

strSQL = \"SELECT ID, navn, adresse, city FROM info WHERE\"
strSQL = strSQL & \" (navn LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (adresse LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (city LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" ORDER BY \"& Request.QueryString(\"orderby\")\"

strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"_private/db.mdb\")
Set myConn = Server.CreateObject(\"ADODB.Connection\")
myConn.Open strDSN

Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
%>

Hjælper det??
Avatar billede keysersoze Ekspert
17. august 2001 - 00:21 #10
det kommer an på hvad du vil med det...
Avatar billede keysersoze Ekspert
17. august 2001 - 00:22 #11
hvordan ser din søge-form ud?
Avatar billede erikjacobsen Ekspert
17. august 2001 - 00:22 #12
og hvis der er så er et felt nedenunder med et passende navn,
der bliver aflæst og overført til strKeyword, så er den ok.

Men mon ikke du bare lige skal udskrive SQL-sætningen, så vi kan se
hvad der er galt.
Avatar billede erikjacobsen Ekspert
17. august 2001 - 00:24 #13
Nu skal du jo lige rette
strSQL = strSQL & \" ORDER BY \"& Request.QueryString(\"orderby\")\"
til min korrekte løsning
strSQL = strSQL & \" ORDER BY \"& Request.QueryString(\"orderby\")
Avatar billede jnissen Nybegynder
17. august 2001 - 00:26 #14
Så får jeg denne fejl:
Der er for få parametre. Der var ventet 1.
Avatar billede erikjacobsen Ekspert
17. august 2001 - 00:29 #15
men du vil ikke udskrive SQL-sætningen så vi kan se hvad der er galt ?
Avatar billede jnissen Nybegynder
17. august 2001 - 00:34 #16
Så står der dette:
SELECT ID, navn, adresse, city FROM info WHERE (navn LIKE \'%kurt%\') OR (adresse LIKE \'%kurt%\') OR (city LIKE \'%kurt%\')
Avatar billede erikjacobsen Ekspert
17. august 2001 - 00:35 #17
Ja, ingen ORDER BY - du skal altså bruge min version
Avatar billede jnissen Nybegynder
17. august 2001 - 00:37 #18
Så for jeg denne fejl:
Der er for få parametre. Der var ventet 1.
Avatar billede erikjacobsen Ekspert
17. august 2001 - 00:38 #19
Og så det jeg spørger om: Hvad står der i SQL-en ?
Avatar billede jnissen Nybegynder
17. august 2001 - 00:41 #20
Hvad mener du? var det ikke det du fik før?
Hvordan finder jeg ud af hvad der står?
Avatar billede erikjacobsen Ekspert
17. august 2001 - 00:43 #21
Nej, når du får \"for få parametre\" - hvad står der så i SQL-en. Du skal bruge
den linie jeg skrev
Avatar billede jnissen Nybegynder
17. august 2001 - 00:46 #22
Det kan godt være det er mig der er en skovl, men nu er jeg total forvirret.
Kan du uddybe dig lidt mere, for jeg er total lost nu :-)
Avatar billede erikjacobsen Ekspert
17. august 2001 - 00:49 #23
keysersozes linie med den ekstra \" til sidst er forkert. Din kommentar
fra 00:34:06  viser også der ikke kommer en \"ORDER BY\" på. Så den
skal du ikke bruge.

Du skal bruge min (bare fjerne den sidste \" fra keysersozes), og så når du
kommer ned til at udføre SQL-en, så er der en fejl. Hvilken mon. Den ser
vi først når du viser os SQL-sætningen
Avatar billede jnissen Nybegynder
17. august 2001 - 00:51 #24
Ja, det er jeg med på. Men hvad er det for en SQL-sætning?
Avatar billede erikjacobsen Ekspert
17. august 2001 - 00:53 #25
Efter linien
  strSQL = strSQL & \" ORDER BY \"& Request.QueryString(\"orderby\")
indsætter du
  response.write strSQL
Avatar billede jnissen Nybegynder
17. august 2001 - 00:58 #26
Hvis jeg gør sådan:
strSQL = strSQL & \" ORDER BY \"& Request.QueryString(\"orderby\")

Response.write strSQL

Så får jeg fejlen med \"for få parametre\".

Hvis jeg gør sådan:
\'strSQL = strSQL & \" ORDER BY \"& Request.QueryString(\"orderby\")

Response.write strSQL

Så står der det jeg skriv i 00:34:06
Og så vises søgeresultaterne som de skal, bare ikke sorteret.
Avatar billede erikjacobsen Ekspert
17. august 2001 - 01:04 #27
jo, men når du får fejlen med \"for få parametre\" så får du da også
udskrevet en SQL-sætning, ikke? Det er den jeg har bedt om den
sidste halve time. Jeg ved godt hvordan den ser du. Den slutter
på ORDER BY og så ingen navn, får mit gæt er at du stadig bruger
en <form> at submitte med hvor der ikke står orderby=navn (du
har glemt at uploade eller opdatere din browser...)

...ja, ok, jeg gætter..

Og så er det et forsøg på at lære dig hvordan man løser disse
problemer: man udskriver SQL-sætningen for at se hvad der
er galt - inden man spørger på eksperten :)
Avatar billede jnissen Nybegynder
17. august 2001 - 01:12 #28
Nej, jeg får ikke nogen sql-sætning, under den anden fejl.

Her er hele fejlen:
Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var ventet 1.
/ITeax/search.asp, line 71

Linje 71 er: Set rs = myConn.Execute(strSQL)

Min form ser sådan ud, og er gemt:
<form method=\"POST\" action=\"search.asp?orderby=navn\">
<input type=\"text\" name=\"Keyword\" size=\"20\" value=\"Indtast søgeord\">
<input type=\"submit\" value=\"Søg\" name=\"action\"></form>

Ja, jeg ved godt jeg er en skovl, men jeg fatter det sku ikke. Du skal nok få nogle flere point.
Avatar billede erikjacobsen Ekspert
17. august 2001 - 01:15 #29
Hvis du har indsat en
Response.write strSQL
som anført, så får du en udskrift af SQL-sætningen. Og der mangler navn efter ORDER
BY.

Har du et link på nettet kan vi fortsætte - ellers slutter vi bare her
Avatar billede erikjacobsen Ekspert
17. august 2001 - 01:15 #30
Jeg mener at jeg gerne vil afprøve det selv
Avatar billede jnissen Nybegynder
17. august 2001 - 01:19 #31
Du kan se det her:
http://www.klemensker-if.dk/iteax/

Søg på default.aps efter fx. \"ram\"
Avatar billede erikjacobsen Ekspert
17. august 2001 - 01:24 #32
Jamen der står jo den jeg bad om:

SELECT ID, name, description, price FROM articles WHERE (name LIKE \'%ram%\') OR (description LIKE \'%ram%\') OR (price LIKE \'%ram%\') ORDER BY navn

og måske er det mig der er dum, men jeg kan altså først se fejlen, når jeg
ser SQL-sætningen. Mon ikke ORDER BY NAME
og dermed
<form method=\"POST\" action=\"search.asp?orderby=name\">
Avatar billede jnissen Nybegynder
17. august 2001 - 01:25 #33
Ups ups ups - Det hele er min fejl :-(

Jeg bruge denne: search.asp?orderby=navn

Det skulle være: search.asp?orderby=name

Det beklager jeg rigtig meget. Du få 60 point for dine anstrengelse , og din store hjælpsomhed.

Tak for hjælpen - håber du kan tilgive mig? :-)
Avatar billede erikjacobsen Ekspert
17. august 2001 - 01:27 #34
Joh, det går nok. Men jeg kan ikke forstå at den ene SQL-sætning har
danske navne på felter (den du selv viste) og denne snakker engelsk.
Avatar billede jnissen Nybegynder
17. august 2001 - 01:28 #35
Nå - du havde også opdagede det :-)

Dette kom kun da jeg oploade det:
SELECT ID, name, description, price FROM articles WHERE (name LIKE \'%ram%\') OR (description LIKE \'%ram%\') OR (price LIKE \'%ram%\') ORDER BY navn

på min computer var det uden order by navn.

Godnat, og tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester