Avatar billede jkampmann Nybegynder
25. marts 2008 - 11:26 Der er 11 kommentarer og
1 løsning

Få indhold der er relateret til en string

Hejsa.
Jeg sidder og er gået lidt i stå, fordi jeg mangler en funktion til at hente indhold ud fra min tabel, som ligner den tekst jeg søgte efter.

F.eks hvis jeg vil lave WHERE navn = 'Mads Mikkelsen' skal den også finde steder hvor navnet er skrevet ukorrekt f.eks: "MadsMikkelsen" eller "Mads Mikkelsen/Edjah".

Samme som den skal finde "ests" hvis jeg søger på "test" - hvis I forstår? Ligesom google's "Mente du.."-funktion.

Havde tænkt på noget med

$SQL = 'SELECT * FROM tabel WHERE navn = '%MADS MIKKELSEN%'';
while ( ... )
{
      echo $mente_du . "<br />";
}

hvor $mente_du så er de resultater, som den OGSÅ fandt, som ligner "MADS MIKKELSEN".

På forhånd tak.
Avatar billede zaittam Nybegynder
25. marts 2008 - 11:27 #1
kan du ikke bruge LIKE?

$SQL = 'SELECT * FROM tabel WHERE navn LIKE '%MADS MIKKELSEN%'';
while ( ... )
{
      echo $mente_du . "<br />";
}
Avatar billede jkampmann Nybegynder
25. marts 2008 - 11:29 #2
Nej, læs lige spørgsmålet igen
Avatar billede zaittam Nybegynder
25. marts 2008 - 11:36 #3
det hjælper dig ihvertfald med første halvdel.

Anden halvdel er der vidst (correct me if im wrong) ingen vej udenom at lave en ombytning af bogstaverne og så en ekstra søgning. Eller 20 :)

Jeg googlede mig frem til denne tråd på webmasterworld.com.. måske den kan hjælpe dig
Avatar billede jkampmann Nybegynder
25. marts 2008 - 11:39 #4
Jeg mener jeg kan huske MySQL har en indbygget funktion som kan hente relaterede tekster som matcher nogenlunde samme tekst. Eksempelvis "test" kan også finde "tset".

Og jo, selvfølgelig kan det lade sig gøre.. Google kan finde ud af det med deres "Mente du xxx.."-funktion.

Desuden det med LIKE funktionne har intet med det at gøre, jeg bruger den allerede i forevejen, og det er IKKE det jeg vil - men hente indhold som LIGNER de tekster..
Avatar billede zaittam Nybegynder
25. marts 2008 - 12:17 #5
Jeg glemte også at poste mit link :)

http://www.webmasterworld.com/forum88/2336.htm
Avatar billede arne_v Ekspert
26. marts 2008 - 01:15 #6
SOUNDEX som der refereres til i det link kan nogen ting.

Eksempel:

mysql> SELECT SOUNDEX('Mads Mikkelsen');
+---------------------------+
| SOUNDEX('Mads Mikkelsen') |
+---------------------------+
| M3252425                  |
+---------------------------+
1 row in set (0.00 sec)

mysql> SELECT SOUNDEX('MadsMikkelsen');
+--------------------------+
| SOUNDEX('MadsMikkelsen') |
+--------------------------+
| M3252425                |
+--------------------------+
1 row in set (0.00 sec)

mysql> SELECT SOUNDEX('Mads Mikkelsen/Edjah');
+---------------------------------+
| SOUNDEX('Mads Mikkelsen/Edjah') |
+---------------------------------+
| M325242532                      |
+---------------------------------+
1 row in set (0.00 sec)

mysql> SELECT SOUNDEX('test');
+-----------------+
| SOUNDEX('test') |
+-----------------+
| T230            |
+-----------------+
1 row in set (0.00 sec)

mysql> SELECT SOUNDEX('tset');
+-----------------+
| SOUNDEX('tset') |
+-----------------+
| T230            |
+-----------------+
1 row in set (0.00 sec)

mysql> SELECT SOUNDEX('ests');
+-----------------+
| SOUNDEX('ests') |
+-----------------+
| E232            |
+-----------------+
1 row in set (0.00 sec)
Avatar billede zaittam Nybegynder
26. marts 2008 - 07:41 #7
http://dk.php.net/manual/da/function.similar-text.php er måske også værd at kigge på - eventuelt holde den sammen med soundex, for bedre at kunne sortere resultaterne.. Hvem ved.. Det skal jeg helt klart lige kigge lidt nærmere på det her!
Avatar billede zaittam Nybegynder
26. marts 2008 - 07:48 #8
Eller tjek eksemplet på denne funktion: http://dk.php.net/manual/da/function.levenshtein.php

Nu begynder det jo at bilve rigtig interessant.. :)
Avatar billede gurly Praktikant
27. marts 2008 - 17:03 #9
Hvad med de point du lovede mig ?
http://www.eksperten.dk/spm/823199
Avatar billede zaittam Nybegynder
28. marts 2008 - 08:33 #10
gurly: Det havde måske været mere på sin plads at rykke for den slags i den tråd det handler om. Der er da ingen grund til at forpeste denne tråd også.
Avatar billede jkampmann Nybegynder
30. marts 2008 - 17:32 #11
Smid svar.
Avatar billede zaittam Nybegynder
30. marts 2008 - 20:57 #12
Svar herfra
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
Computerworld tilbyder specialiserede kurser i database-management

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