/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Søgning i MySQL base virker kun sporadisk
Fra : Anders Petersen


Dato : 20-06-02 19:28

Jeg har forskellige filmtitler oprettet i en MySQL-base med felter som fx.
hovedroller, titel osv. Jeg har så et inputfelt til søgning samt et par
radiobuttons til at vælge søgeområde, fx. titel ell. hovedroller.

Variablen til udvælgelse af område ryger fint over (visning af den færdige
sql-streng er tilgfredsstillende), men selve resultatet af min query er
mystisk. Eksekverer jeg den direkte i phpMyAdmin er alt godt, bliver den
kørt fra min asp-side virker det kun nogle gange - uden noget tydeligt
mønster. Tilsyneladende virker det fint, hvis jeg blot søger på et enkelt
bogstav, men titlen 'Bangkok Hilton' returneres kun, hvis jeg søger på
'hil' - ikke på 'ban'.

Kan det have noget at gøre med måden recordsættet åbnes på? Eller store/små
bogstaver, mellemrum el.lign.?

En færdig sql kunne være "select * from film where titel like '%hil%' or
orgtitel like '%hil%' order by titel"

Uddrag af koden:

kat = request.querystring("kat")
sstring = request.form("sstring")

if sstring <> "" then
omr = request("omr")
if omr = "titel" then
sql = "select * from film where titel like '%" & sstring & "%' or
orgtitel like '%" & sstring & "%'"
elseif omr = "hovedroller" then
sql = "select * from film where hovedroller like '%" & sstring & "%' or
hovedroller2 like '%" & sstring & "%'"
else
sql = "select * from film where " & omr & " like '%" & sstring & "%'"
end if
msg = "Søgningen gav intet resultat"
else
sql = "select * from film"
if kat <> "all" then
sql = sql & " where kategori = " & kat
end if
msg = "Ingen film i denne kategori endnu"
end if

sql = sql & " order by titel"

Set rs = Server.CreateObject("ADODB.RecordSet")
rs.CursorLocation = 3
rs.Open sql, strDSN, 2

Hjælp vil blive modtaget med kyshånd - jeg er stået helt af mht.
løsninger...

På forhånd tak.

/Anders

 
 
Anders Petersen (20-06-2002)
Kommentar
Fra : Anders Petersen


Dato : 20-06-02 19:44


> Set rs = Server.CreateObject("ADODB.RecordSet")
> rs.CursorLocation = 3
> rs.Open sql, strDSN, 2

Synes nu at kunne konstatere, at hvis jeg i stedet for ovenstående benytter
conn.execute(sql), så er alt godt...

Hvad er forskellen - og hvordan kan det betyde noget for resultaterne? Er
der evt. en måde at 'redde' den eksisterende kode på, så jeg ikke behøver
skrive mit paging-system om?

På forhånd tak.

/A

Torben Brandt (20-06-2002)
Kommentar
Fra : Torben Brandt


Dato : 20-06-02 20:51

Anders Petersen wrote in dk.edb.internet.webdesign.serverside.asp:
> > Set rs = Server.CreateObject("ADODB.RecordSet")
> > rs.CursorLocation = 3
> > rs.Open sql, strDSN, 2
>
> Synes nu at kunne konstatere, at hvis jeg i stedet for ovenstående benytter
> conn.execute(sql), så er alt godt...
>
> Hvad er forskellen - og hvordan kan det betyde noget for resultaterne? Er
> der evt. en måde at 'redde' den eksisterende kode på, så jeg ikke behøver
> skrive mit paging-system om?
>
Hvordan har du da lavet din paging ?

Hvad hvis du skriver:
Set rs = conn.execute(sql)
rs.close
rs.cursortype = 2
rs.open
i stedet for
rs.Open sql, strDSN, 2
?

mvh Torben

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Anders Petersen (20-06-2002)
Kommentar
Fra : Anders Petersen


Dato : 20-06-02 21:00

> Hvordan har du da lavet din paging ?
>
> Hvad hvis du skriver:
> Set rs = conn.execute(sql)
> rs.close
> rs.cursortype = 2
> rs.open
> i stedet for
> rs.Open sql, strDSN, 2

Jeg tænker mest på, hvordan rs.open adskiller sig teknisk fra set rs =
conn.execute... Vil prøve ovenstående, men synes det virker sært at åbne og
lukke...

/Anders

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste