slowMedlem sedan apr. 2004148 inlägg Har gjort en liten sökfunktion vars jag använder denna SQL kod:
SELECT *
FROM skrivet_text
WHERE rubrik LIKE '%SearchString%' OR text LIKE '%SearchString%'
ORDER BY datum DESC
'%SearchString%' är bara hämtad från ett textfält. Sökningen funkar bra men jag försöker få den att man ska kunna välja vilka kategorier man vill söka i. Alltså jag har en tabell med kategorierna, tex så här:
id_kategori
namn_kategori
beskrivning_kategori
Också har jag som jag en tabell som innehåller texterna, typ så här:
id_text
kategori_id
text
Sedan tänkte jag att man skulle klicka i vilka kategorier man vill att den ska söka i genom vanliga 'Checkboxar' i ett formulär. Har satt dit så att dessa checkboxar skickar med aktuellt idnummer på kategorin iaf. Förstår ni hur jag menar? Men hur riktigt gör man det i SQL. Finns det någon "if-sats" man kan köra med? :D Typ om checkbox med värde 1 sök i text med kategori_id = 1....
slowMedlem sedan apr. 2004148 inlägg SELECT *
FROM tabellen
WHERE '%checedvalue1%' = tabellen.rad AND
'%checedvalue%2' = tabellen.rad, 'rubrik LIKE
'%SearchString%' OR text LIKE '%SearchString%'
ORDER BY datum DESC
Nått sådan fast något som fungerar? hehe..
FAAN vad kass jag är på det här.. :)
LarsGMedlem sedan dec. 200012 464 inlägg Döp checkboxarna till samma namn
SELECT *
FROM tabellen
WHERE tabellen.rad in (" & request.form("checkBox") & ")"
AND (rubrik LIKE '%SearchString%'
OR text LIKE '%SearchString%')
ORDER BY datum DESC
Glöm inte parenteser när du blandar and och or i where.
Welcome SQL-injection! :o
slowMedlem sedan apr. 2004148 inlägg Ändrade om lite så det skulle bli lite enklare för mig.. :)
Så nu kan man bara söka i en kategori år gången.. :)
SELECT *
FROM skrivet_text
WHERE skrivet_text.kat_id = '%checkbox%' AND
rubrik LIKE '%SearchString%' OR text LIKE '%SearchString%'
ORDER BY datum DESC
Men när jag kör med denna så struntar den vilket idnummer texten tillhör utan visar alla texter oavsett.
Provade att använda IN istället för = i denna (WHERE skrivet_text.kat_id IN '%checkbox%' ) Men då får jag error..finns det något annat jag kan använda?
slowMedlem sedan apr. 2004148 inlägg Jag lyckas inte med parenteserna! :(
SELECT *
FROM skrivet_text
WHERE '%katid%' = ('skrivet_text.kat_id') AND
(rubrik LIKE '%SearchString%' OR text LIKE '%SearchString%')
ORDER BY datum DESC
Vad gör jag för fel?
@ndersMedlem sedan juni 200032 969 inlägg Vad vill du ha för resultat av det där? Är katid en variabel i ASP eller PHP? Då får du konkatenera in den på lämpligt sätt. För ASP (som är det jag kan):
SELECT *
FROM skrivet_text
WHERE skrivet_text.kat_id = " & katid & " AND
(rubrik LIKE '%SearchString%' OR text LIKE '%SearchString%')
ORDER BY datum DESC
Är det PHP kan du säkert konkatenera in det själv.
slowMedlem sedan apr. 2004148 inlägg aaaah, naturligtvis..är man kas så är man.. :)
det var php och nu är det fixat....