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:
[PHP]SELECT * FROM table WHERE row LIKE %$sökord%[/PHP]

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:
[PHP]SELECT * FROM table WHERE row LIKE %$sökord%[/PHP]

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

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:
[PHP]SELECT * FROM table WHERE row LIKE %$sökord%[/PHP]
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)?
[PHP]SELECT * FROM table WHERE titel LIKE %$sökord% AND kategori = $kategori[/PHP]
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

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in