Avatar billede thb Nybegynder
19. december 2004 - 15:46 Der er 6 kommentarer og
2 løsninger

Søge på flere ord

Hej alle,

Jeg er ved at lave et søge script der skal søge en tabel igennem.
Jeg har fået den til at virke, men vil gerne udbygge den lidt.

Hvis jeg nu har en der søger på 'søge ord' så søger den i db efter 'søge ord' hvor jeg gerne vil have den til at søge 'søge'+'ord' hvordan kan jeg få den til det..

Min sql ser således ud..

$query = "
                        SELECT p.over,p.tekst,s.id,s.under,p.lan FROM ".$tableSet['pages']." p,".$tableSet['settings']." s
                        WHERE p.page_id = s.id AND p.lan = ".$_SESSION['lan']." AND p.skjulmenu=0 AND p.type=0 AND (LCASE(p.tekst) LIKE '%".$soeg."%') OR (LCASE(p.over) LIKE '%".$soeg."%')
                        ORDER BY s.position ASC, s.id ASC
                    ";

Thomas
Avatar billede coderdk Praktikant
19. december 2004 - 16:18 #1
'søge' ELLER 'ord'

eller

'søge' OG 'ord'

?
Avatar billede coderdk Praktikant
19. december 2004 - 16:19 #2
btw som default er SQL case-insensitive - så en søgning efter "ord" er det samme som en søgning på "ORD"...
Avatar billede dmcn Praktikant
19. december 2004 - 16:45 #3
http://dev.mysql.com/doc/mysql/en/Fulltext_Search.html - læs lidt om fulltext søgninger, det er et fantastisk koncept. :)
Avatar billede thb Nybegynder
19. december 2004 - 18:06 #4
corderdk > Det må så være ELLER.. Jeg vil så fjerne LCASE() :D

normality > Kigger lige på dit link senere..

Thomas
Avatar billede coderdk Praktikant
19. december 2004 - 18:12 #5
Noget i stil med:

$ord = "søge ord";
$arr = explode( " ", $ord );
$n = count( $arr );
$ord = '';
for ( $i = 0; $i < $n; $i++ )
{
  if ( $i > 0 )
  {
    $ord .= ' OR ';
  }
  $ord = "p.over LIKE '%" . $arr[ $i ] . "'";
}
$sql = "
  SELECT
    p.over
    ,p.tekst
    ,s.id
    ,s.under
    ,p.lan
  FROM
    ".$tableSet['pages']." p
    ,".$tableSet['settings']." s
  WHERE
    p.page_id = s.id
    AND p.lan = ".$_SESSION['lan']."
    AND p.skjulmenu=0 AND p.type=0
    AND (" . $ord . ")
  ORDER BY s.position ASC, s.id ASC
  ";
Avatar billede thb Nybegynder
19. december 2004 - 22:24 #6
Super super.. Gider i begge at smide et svar ??? :D

Thomas
Avatar billede coderdk Praktikant
19. december 2004 - 22:31 #7
Yesyes :)
Avatar billede dmcn Praktikant
20. december 2004 - 01:04 #8
ok :)
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