Avatar billede nazty Nybegynder
10. september 2007 - 13:15 Der er 13 kommentarer og
1 løsning

Søge på de 4 sidste cifre i tallet

Skal have lavet en søgemaskine hvor man kan søge på de 4 sidste cifre i tallet. Hvordan kan man lave det?

Har noget kode her:

If Request.Form("nr") <>  "" then
    'Åbner forbindelse
    Set db = Server.CreateObject("ADODB.RecordSet")
    SQL = ("select * FROM lager WHERE Billede = 'Ja' AND nr LIKE '%Right(" & Request.Form("nr") & ", 4)';")
    JET = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& server.MapPath("../../../../log/db.mdb")
    db.Open SQL, JET, 1
Avatar billede nazty Nybegynder
10. september 2007 - 13:17 #1
Btw..

Koden virker ikke som den er nu.. men den kommer ikke men nogen fejl..
Avatar billede fennec Nybegynder
10. september 2007 - 13:21 #2
Brug ASP's right:
SQL = "select * FROM lager WHERE Billede = 'Ja' AND nr LIKE '%" & right(Request.Form("nr"),4) & "'"
Avatar billede nazty Nybegynder
10. september 2007 - 14:02 #3
hmm.. virker stadig ikke :/

Siger nummeret ikke matcher noget..
Avatar billede fennec Nybegynder
10. september 2007 - 14:21 #4
Så skal jeg lige vide lidt om data.
1: Hvad får du af data i Request.Form("nr")?? Jeg har forstået at du f.eks får "123456789", men kun vil søge på de sidste 4 tegn altså "6879"

2: Hvad har du af data i "nr" i databasen?? Jeg har opfattet det som noget ala:
111111111
22222
3333333333333
123456789
1116789
Avatar billede fennec Nybegynder
10. september 2007 - 14:25 #5
Eller få du altid 4 tegn eller mindre fra Request.Form("nr")?? f.eks "123"

Også vil du kun have den skal søge på de sidste 4 tegn af "nr" i databasen:
11111111 (findes ikke)
1111123 (findes)
2222123 (findes)
1234444 (findes ikke)
Avatar billede nazty Nybegynder
10. september 2007 - 16:26 #6
I databasen har jeg en masse tal på 13 cifre. De er kun de sidste 4 jeg er interesseret i. Når jeg søger skal den hente alt data der ender på de 4 cifre jeg søger på (i samme rækkefølge)
Avatar billede michael_stim Ekspert
10. september 2007 - 16:30 #7
Det er mig der tænker forkert. Det skal selvf. ikke være LIKE når man substringer, men derimod =

SQL = ("select * FROM lager WHERE Billede = 'Ja' AND nr = 'Right(" & Request.Form("nr") & ", 4)';")

eller

SQL = "select * FROM lager WHERE Billede = 'Ja' AND nr = '" & right(Request.Form("nr"),4) & "'"
Avatar billede fennec Nybegynder
10. september 2007 - 16:39 #8
Ok, så er jeg med. Du skal lave en right på nr i stedet:
SQL = "select * FROM lager WHERE Billede = 'Ja' AND right(nr,4) = '" & Request.Form("nr") & "'")

Kræver selvfølgelig at Request.Form("nr") er præsis 4 tegn lang.
Avatar billede fennec Nybegynder
10. september 2007 - 16:40 #9
men min sql fra 13:21:41 burde altså også virke. Bare ikke helt så hurtig da det er en like.
Avatar billede nazty Nybegynder
10. september 2007 - 16:41 #10
hmm.. sker ingen ting michael_stim :S
Avatar billede nazty Nybegynder
10. september 2007 - 16:44 #11
arh.. nu gør det.. ved sq ik li hva jeg laver :S smid svar!
Avatar billede nazty Nybegynder
10. september 2007 - 16:48 #12
hvordan siger jeg at 'nr skal være 4 cifre?
Avatar billede fennec Nybegynder
11. september 2007 - 08:18 #13
lænker du på Request.Form("nr")??

if len(Request.Form("nr")&"") <> 4 then
  response.write "Nr skal være 4 tegn"
  response.end
end if
Avatar billede nazty Nybegynder
11. september 2007 - 10:45 #14
Perfekt! Mange 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