Hur gör man på bästa sätt en sökbar databas? jag vill att användaren ska kunna skriva in ett (fördefinerat)nyckelord och sedan ska alla träffar skrivas ut. nån med nått hett tips?
sökbar databas?
10 svar · 618 visningar · startad av greymane
Alla kolumner i en databas är sökbara. Skapa index på de kolumner som du oftast använder i sökningar.
Om du har ett villkor som
aleb like '%ogrish%'
så har du ingen nytta av ett index, så det är bra om du kan söka med
aleb = 'ogrish'
eller
aleb like 'ogrish%'
istället.
------------------
essentitia preter non sans multiplicandum
grejen e ju den att man ska kunna välja flera sökbara nyckelord. jag har lagt upp det som följer. på webbsidan har jag ett formulär med kryssrutor. ikryssade rutor medför att värdet på dem läggs till i en kolumn (alltså flera ord i en kolumn). jag vet inte om det är bra eller dåligt att göra så, det var det enda jag kunde komma på. finns det nåt bättre sätt? för med denna metoden kan jag väl bara använda LIKE %rulle%
kom an! ;) e det inte nån som vet? LarsG? :)
jag förstod aldrig beskrivningen. Vad menar du med detta
ikryssade rutor medför att värdet på dem läggs till i en kolumn (alltså flera ord i en kolumn).
och hur använder du dessa värden?
------------------
essentitia preter non sans multiplicandum
jo, säg att jag har två rutor ruta1 och ruta2. ruta1 har värdet "havsutsikt" och ruta2 har värdet "solnedgång". dessa två orden läggs då in i kolumnen "nyckelord". sen vill jag kunna visa de rader som bäst matchar de sökkriterier en användare anger. hur gör man det på ett effektivt sätt? jag kanske är helt ute och cyklar...
[Redigerat av greymane den 23 nov 2001]
Jo, det går ju om du lägger varje ord som en egen post och sedan gör en join mot tabellen.
Om du bara har ett fåtal nyckelord så kan du ju bygga in villkoren direkt i select-satsen.
------------------
essentitia preter non sans multiplicandum
hur menar du med att lägga varje ord i varsin post och join? jag e inte så insatt alltid...
Du kan ju bygga in det direkt i sql
$sql = "select * from dintabell where 1=1 ";
if ($chkbox1 != "") {
$sql .= "or kolumn like '%" . $chkbox1 . "%' ";
}
if ($chkbox2 != "") {
$sql .= "or kolumn like '%" . $chkbox2 . "%' ";
}
sen så vill du kanske ge användarna en nöjlighet att ange att dom vill att alla villkor skall vara uppfyllda och i så fall får du byta or mot and
------------------
essentitia preter non sans multiplicandum
jag hade tänkt att lägga alla sökord i kolumnen "nyckelord" så den skulle se ut nåt i stil med "nyckelord1 nyckelord2 nyckelord3 nyckelord4" sen söka på like "%nyckel%". är det ett dåligt sätt? ska jag lägga vaje nyckelord i en egen kolumn?
kom igen! jag behöver verkligen hjälp här! det blir så krångligt om jag märker att det blir fel och måste göra om det efter jag har släppt siten... lika bäst att göra det bra med en gång