/ 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øgefunktion med MySQL - Array og split.
Fra : Ole Nilsson


Dato : 13-02-04 16:36

Hej
Jeg har fgl. kode, men den virker sørmer "not", hvilket ikke
overrasker mig, da jeg ikke har "forsket " i området før:

strArray = Split(strord," ")
for i = 0 to UBOUND(strArray)-1
strArray
(Mangler at gøre noget ved indholdet af dette array ?)
next

Jeg har denne sql-streng (som såmænd også indeholder en eller
flere syntaks-fejl):

strSQL = "select adresse,tekst from sider where (ord1 IN '" &
strArray & "' OR ord2 IN '" & strArray & "' OR ord3 IN '" &
strArray & "') order by adresse LIMIT "& intStart &", "&
intPageSize &";"

Ideen er altså at gøre det muligt at søge på en tekststreng
indeholdende flere ord. Denne funktion er jo ganske praktisk, men
svær for mig at lave.

At bruge "LIKE" operatoren begrænser en mere fleksibel søgning.
Har hidtil brugt den således:
....
strSQL = "select adresse,tekst from sider where"
strSQL = strSQL & " (ord1 LIKE '" & strord & "%')"
strSQL = strSQL & " OR (ord2 LIKE '" & strord & "%')"
strSQL = strSQL & " OR (ord3 LIKE '" & strord & "%') order by
tekst LIMIT "& intStart &", "& intPageSize &";"
....
........men altså - ideer modtages .....

Nilsson


--
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

 
 
Jens Gyldenkærne Cla~ (13-02-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 13-02-04 16:55

Ole Nilsson skrev:

> Jeg har fgl. kode, men den virker sørmer "not",

Hvordan virker den ikke?

Får du asp-fejl eller viser siden et andet resultat end du
forventer?

Hvordan ser din (færdige) sql-streng ud?

Læs gerne artiklen her og vend tilbage med flere oplysninger:
   <http://asp-faq.dk/article/?id=41>
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Ole Nilsson (13-02-2004)
Kommentar
Fra : Ole Nilsson


Dato : 13-02-04 19:30


> > Jeg har fgl. kode, men den virker sørmer "not",
>
> Hvordan virker den ikke?

Der er en "grov" fejl. Der kommer intet sideindhold frem.

>
> Får du asp-fejl eller viser siden et andet resultat end du
> forventer?

Jeg for denne fejl:

Microsoft VBScript runtime error '800a000d'
Type mismatch
/popup/liste.asp, line 72

>
> Hvordan ser din (færdige) sql-streng ud?

Fumktionen som giver ovennævnte melding ser sålunde ud:

strArray = Split(strord," ")
for i = 0 to UBOUND(strArray)-1
findStr = findStr & " ord1 LIKE '" & strArray(i) & "' OR"
next
findStr = findStr & " ord1 LIKE '" & strArray & "'"

strSQL = ("SELECT tekst,adresse FROM sider WHERE ( " & findStr &
")")

Jeg er godt klar over at der er en manglende "indre forståelse"
fra min side. Jeg er dog bevidst om at anvende split-metoden til
at opdele "inputteksten" og derefter danne et array. Værdierne i
dette array skal så "gennemløbes" i en forespørgselssætning. Jeg
mangler dog lidt assistance til at vurderer om sammenstillingen
er korrekt. Ved også at der er måder at gøre dette på som kan
"belaste" databasen mere eller mindre, afhængig af
SQL-forespørgslens opbygning.

Nilsson

--
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

Jørn Andersen (13-02-2004)
Kommentar
Fra : Jørn Andersen


Dato : 13-02-04 20:15

On Fri, 13 Feb 2004 18:29:49 +0000 (UTC), Ole Nilsson <strejf@ofir.dk>
wrote:

>Microsoft VBScript runtime error '800a000d'
>Type mismatch
>/popup/liste.asp, line 72
<snip>

>Fumktionen som giver ovennævnte melding ser sålunde ud:
>
>strArray = Split(strord," ")
>for i = 0 to UBOUND(strArray)-1
> findStr = findStr & " ord1 LIKE '" & strArray(i) & "' OR"
>next
>findStr = findStr & " ord1 LIKE '" & strArray & "'"

Mener du ikke:
findStr = findStr & " ord1 LIKE '" & strArray(UBound(strArray)) & "'"
- eller måske bare:
findStr = findStr & " ord1 LIKE '" & strArray(i) & "'"

(Tag i øvrigt et kig på Join-funktionen - den gør det samme, bare lidt
lettere.)

>strSQL = ("SELECT tekst,adresse FROM sider WHERE ( " & findStr &
>")")

Og her var det så, at Jens spurgte:
>Hvordan ser din (færdige) sql-streng ud?

>Læs gerne artiklen her og vend tilbage med flere oplysninger:
><http://asp-faq.dk/article/?id=41>
(den relevante del er ca. midt i)

Så prøv at udskrive din Sql-streng med denne metode, så går der
sikkert en prås op for dig.


Good luck!

--
Jørn Andersen,
Brønshøj

Ole Nilsson (13-02-2004)
Kommentar
Fra : Ole Nilsson


Dato : 13-02-04 20:35


> > Jeg har fgl. kode, men den virker sørmer "not",
>
> Hvordan virker den ikke?

Der er en "grov" fejl. Der kommer intet sideindhold frem.

>
> Får du asp-fejl eller viser siden et andet resultat end du
> forventer?

Jeg for denne fejl:

Microsoft VBScript runtime error '800a000d'
Type mismatch
/popup/liste.asp, line 72

>
> Hvordan ser din (færdige) sql-streng ud?

Fumktionen som giver ovennævnte melding ser sålunde ud:

strArray = Split(strord," ")
for i = 0 to UBOUND(strArray)-1
findStr = findStr & " ord1 LIKE '" & strArray(i) & "' OR"
next
findStr = findStr & " ord1 LIKE '" & strArray & "'"

strSQL = ("SELECT tekst,adresse FROM sider WHERE ( " & findStr &
")")

Jeg er godt klar over at der er en manglende "indre forståelse"
fra min side. Jeg er dog bevidst om at anvende split-metoden til
at opdele "inputteksten" og derefter danne et array. Værdierne i
dette array skal så "gennemløbes" i en forespørgselssætning. Jeg
mangler dog lidt assistance til at vurderer om sammenstillingen
er korrekt. Ved også at der er måder at gøre dette på som kan
"belaste" databasen mere eller mindre, afhængig af
SQL-forespørgslens opbygning.

Nilsson

--
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

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408942
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste