Vinnaren i pepparkakshustävlingen!
2012-01-30, 21:34
  #1
Medlem
Frabbes avatar
Hej.

Jag har gjort en sökfunktion på min hemsida, koden ser ut ungefär såhär:
Kod:
SELECT FROM table WHERE row LIKE %$sökord

Men på söksidan får man fylla i:
Sökord
Kategori
Datum

Och om någon enbart fyller i sökord, ska denna kod köras:
Kod:
SELECT FROM table WHERE row LIKE %$sökord

Men om någon väljer kategori också, hur ser koden ut då? Något sådant här(fungerar ej)?
Kod:
SELECT FROM table WHERE titel LIKE %$sökord% AND kategori $kategori 

Jag undrar även hur jag gör för att söka efter sökord fast inte enbart där det börjar med $sökord, utan också visa resultat som slutar och innehåller $sökord.

Tack så mycket!
Citera
2012-01-30, 21:54
  #2
Medlem
gadzooxs avatar
Citat:
Kod:
SELECT FROM table WHERE row LIKE %$sökord
Du får inte glömma fnuttarna. Jag förutsätter att $sökord skall syfta på en sträng.

SELECT * FROM table WHERE titel LIKE '%$sökord%'

Givetvis bör variabeln $sökord både 1) innehålla en sträng, och 2) ha ett vettigare namn.


Citat:
Men om någon väljer kategori också, hur ser koden ut då? Något sådant här(fungerar ej)?
Kod:
SELECT FROM table WHERE titel LIKE %$sökord% AND kategori $kategori 
Helt rätt, men använd fnuttar som sagt. Och fundera på vad fältet kategori har för datatyp; är det en numerisk typ så har du gjort helt rätt, men om det är en sträng måste du ha fnuttar runt $kategori

Citat:
Jag undrar även hur jag gör för att söka efter sökord fast inte enbart där det börjar med $sökord, utan också visa resultat som slutar och innehåller $sökord.
Precis så som du gjort. % är ett wildcard-tecken i SQL, '%ord%' matchar alltså både mord, ordentlig, ord och fordon.
Citera
2012-01-30, 22:00
  #3
Medlem
Frabbes avatar
Citat:
Ursprungligen postat av gadzoox
Du får inte glömma fnuttarna. Jag förutsätter att $sökord skall syfta på en sträng.

SELECT * FROM table WHERE titel LIKE '%$sökord%'

Givetvis bör variabeln $sökord både 1) innehålla en sträng, och 2) ha ett vettigare namn.



Helt rätt, men använd fnuttar som sagt. Och fundera på vad fältet kategori har för datatyp; är det en numerisk typ så har du gjort helt rätt, men om det är en sträng måste du ha fnuttar runt $kategori


Precis så som du gjort. % är ett wildcard-tecken i SQL, '%ord%' matchar alltså både mord, ordentlig, ord och fordon.

Tack så mycket. Ska testa om det fungerar som jag tänkt mig nu!
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback