Avatar billede andrew Nybegynder
10. april 2008 - 18:43 Der er 9 kommentarer og
1 løsning

Hjælp til Like i php/mysql

Hej.

Jeg sidder og roder med Like i php.

Jeg har fundet ud af hvordan man laver en like forespørgsel i mysql, når man skal bruge et søgeord som er en del af et ord/sætning i en database.

Men hvordan kan man se om et felt i min database, passer til et søgeord?

Eksempel:

result=mysql_query("SELECT * FROM domains WHERE domain LIKE '%$keyword%'");


Kan man lave den om så den ser sådan ud, og VIRKER?

result=mysql_query("SELECT * FROM domains WHERE '%domain' LIKE '$keyword'");


Håber I forstår mit budskab.
Avatar billede jakobdo Ekspert
10. april 2008 - 19:19 #1
Hvad er det du gerne vil ?

% = wildcard (hvad som helst)

hvis vi siger vi har data i tabellen, som indeholder:

eksperten.dk

Hvis jeg så søger på:
%perten.dk, så vil den finde eksperten.dk og alle andre der ender på perten.dk
Hvis jeg søger på:
ekspert%, så vil den finde eksperten.dk og alle andre der starter med ekspert
Hvis jeg søger på:
%erten%, så vil den finde eksperten.dk og alle andre som indeholder erten i midten

Håber det giver lidt mening.
Avatar billede andrew Nybegynder
10. april 2008 - 19:26 #2
Det der er mit problem, det er at jeg ikke kan få det til at virke.

Dit eksempel er faktisk det jeg søger. Men hvordan laver man en forespørgsel ud fra det?
Avatar billede jakobdo Ekspert
10. april 2008 - 19:44 #3
Det kommer an på hvad du gerne vil opnå! :o)
Avatar billede andrew Nybegynder
10. april 2008 - 19:45 #4
Det er sku svært at forklare... :-/

Det der er mit problem, det er ved en normal forespørgsel som denne:

result=mysql_query("SELECT * FROM domains WHERE domain LIKE '%$keyword%'");

Men søger man med et ord som "statestik.eksperten.dk" i databasen med et felt der indeholder "eksperten.dk" skal den give noget feedback men det vil den aldrig gøre, da forespørgsel er omvendt.

Normalt spøger man jo efter "eksperten.dk" hvor den så evt. vil finde "statestik.eksperten.dk" i databasen, hvis den altså findes..
Avatar billede jakobdo Ekspert
10. april 2008 - 20:04 #5
Så skal du lave noget kode, som splitter ordene op.
Og der skal du jo så lave nogle regler.
F.eks. kan man jo ikke splitte op efter ., for så får du delene:

statistik
eksperten
dk
Avatar billede andrew Nybegynder
10. april 2008 - 20:08 #6
Okay. Håbede ellers at jeg kunne gøre det via en forespørgsel?? :(
Avatar billede jakobdo Ekspert
10. april 2008 - 20:31 #7
Det kan du delvist også.
Du kan lave:

domain LIKE $del1 OR domain LIKE $del2 OR domain LIKE $del3
Men du skal stadig selv finde frem til hvad der skal i del1,del2 og del3, og om der evt. skal være flere dele. :o)
Avatar billede andrew Nybegynder
13. april 2008 - 22:30 #8
Okay. Jeg dropper like funktionen. Finder på noget med en preg_match. Skal lige se om jeg kan finde ud af det ;)..

Smid et svar.. Så får du lidt point.. :)
Avatar billede jakobdo Ekspert
14. april 2008 - 10:48 #9
Svar!
Avatar billede jakobdo Ekspert
14. april 2008 - 17:46 #10
Takker for point.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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