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

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
MySql søgning
Fra : Mads Pedersen


Dato : 22-01-02 20:06

Hej,

Jeg er ved at lave en søgefunktion til en MySql database og har brug for
lidt hjælp.

Min query indeholder bl.a. LIKE '%$searchterm%'

Det virker fint med 1 søgeord. Hvis brugeren taster to ord i input feltet,
f.eks. "hund kat" resulterer det i en Query fejl.

Hvordan kan bygge en query der søger på begge?

Jeg kan forestille mig at man skal skal bryde $searchterms op i et array der
indeholder de to(+) ord, men hvordan gør man det?

Pft,

// Mads


 
 
Anders Johannsen (22-01-2002)
Kommentar
Fra : Anders Johannsen


Dato : 22-01-02 20:45

> Jeg kan forestille mig at man skal skal bryde $searchterms op i et array
der
> indeholder de to(+) ord, men hvordan gør man det?

Benyt f.eks. explode() til opdelingen. Du kan søge på flere ord i databasen
ved at anføre
ekstra betingelser i din query, f.eks.

SELECT *
FROM Table
WHERE text LIKE '%xx%'
OR text LIKE '%xx%'
OR ...

Hvis der er tale om en større mængde tekst, bør fuldtekstindeksering
overvejes, da
LIKE '%%' konstruktionen kan give performanceproblemer.

/A




Mads Pedersen (29-01-2002)
Kommentar
Fra : Mads Pedersen


Dato : 29-01-02 22:53

in article 3c4dc159$0$80435$edfadb0f@dspool01.news.tele.dk, Anders Johannsen
at anders@ignition.dk wrote on 22/01/02 20:45:

> Benyt f.eks. explode() til opdelingen. Du kan søge på flere ord i databasen
> ved at anføre
> ekstra betingelser i din query, f.eks.
>
> SELECT *
> FROM Table
> WHERE text LIKE '%xx%'
> OR text LIKE '%xx%'
> OR ...
>
> Hvis der er tale om en større mængde tekst, bør fuldtekstindeksering
> overvejes, da
> LIKE '%%' konstruktionen kan give performanceproblemer.

Tak for svaret!

Explode var lige den funktion jeg skulle bruge!

// Mads
----------------------------------
..: http://www.madspedersen.com
..: http://www.doubleloop.dk


Mads Pedersen (22-01-2002)
Kommentar
Fra : Mads Pedersen


Dato : 22-01-02 21:29

in article B8737690.2F958%mads@imv.au.dk, Mads Pedersen at mads@imv.au.dk
wrote on 22/01/02 20:05:

> Det virker fint med 1 søgeord. Hvis brugeren taster to ord i input feltet,
> f.eks. "hund kat" resulterer det i en Query fejl.

Det er faktisk en dårlig beskrivelse - der bliver ikke meldt fejl, men den
søger bare efter den samlede string ikke to seperate ord.

Så spørgsmålet er ok:

> Hvordan kan bygge en query der søger på begge?
>
> Jeg kan forestille mig at man skal skal bryde $searchterms op i et array der
> indeholder de to(+) ord, men hvordan gør man det?

// Mads
----------------------------------
..: http://www.madspedersen.com
..: http://www.doubleloop.com


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

Månedens bedste
Årets bedste
Sidste års bedste