Var skapar du SQL-frågan? Kolla det där, och lägg bara till villkoret i SQL-frågan om inte 'alla' är valt.
if ($foo!="alla")
$sSQL += " WHERE t.kolumn = $variabel";
Databaser & SQLur Databashanterare & SQL
7 svar · 249 visningar · startad av slow
Ifall du har ett formulär vars det skickas med en variabel från en select lista iform av en siffra (id) också vill du att ifall man väljer "Alla val" så ska den söka bland alla idnummer.
Selectlistan:
Alla val (Hela högen)
Val 1
Val 2
SELECT *
FROM t1
WHERE
(t1.kolum=variabel)
Ifall man väljer "alla val" hur ska man få in det i SQL:n?
(MySQL)
Var skapar du SQL-frågan? Kolla det där, och lägg bara till villkoret i SQL-frågan om inte 'alla' är valt.
if ($foo!="alla")
$sSQL += " WHERE t.kolumn = $variabel";
Så här ser SQL ut som ska hämta från databasen...
SELECT *
FROM rg_koposalj_annons
INNER JOIN rg_koposalj_ukategori ON rg_koposalj_annons.ukat_id = rg_koposalj_ukategori.id_ukat
WHERE (rg_koposalj_annons.ukat_id=underkat) AND (rg_koposalj_annons.annons_rubrik LIKE '%SearchString%'
OR rg_koposalj_annons.annons_text LIKE '%SearchString%')
Sen har jag satt två variablar:
SearchString = det man skriver in i ett textfält(formulär).
underkat = id nummer på en kategori som man vill söka i. Select/lista (formulär)...
Går det inte att ifall man Väljer "Alla Kategorier" i listan så skickar den iväg typ >0....Men det går ändå inte för då blir ju frågan =>0 och det går ju inte? Finns det inget sånt enkelt sätt? Förstår inte riktigt hur du menar tyvärr.. :(
Var skapar du SQL-frågan någonstans?
I filen som tar emot mina variablar från en sida vars jag har formuläret? Eller vad menar du? :D
HEJ!
Jag lägger "alla kategorier" som 1 i databasen.
När man söker mht kategorier, kolla jag om kat_id är 1, isåfall sätter jag variabeln kat_tecken till >, annars blir kat_tecken =.
Alltså:
...AND annons.kat & kat_teck & kat_id AND...
vilket blir
...AND annons.kat>1 AND
eller
...AND annons.kat=4 AND
Då förstår jag...man måste prata klarspråk med mig.. :)
Det är en webbsida, php. Och koden ser ut så här:
$query_senaste_annonserna = sprintf("SELECT * FROM
rg_koposalj_annons INNER JOIN rg_koposalj_ukategori
ON rg_koposalj_annons.ukat_id =
rg_koposalj_ukategori.id_ukat WHERE
(rg_koposalj_annons.ukat_id=%s) AND
(rg_koposalj_annons.annons_rubrik LIKE '%%%s%%' OR
rg_koposalj_annons.annons_text LIKE '%%%s%%')", $underkat_senaste_annonserna,$SearchString_senaste_annonserna,
$SearchString_senaste_annonserna);
$query_limit_senaste_annonserna =
sprintf("%s LIMIT %d, %d", $query_senaste_annonserna,
$startRow_senaste_annonserna,
$maxRows_senaste_annonserna);
$senaste_annonserna =
mysql_query($query_limit_senaste_annonserna,
$anslutning) or die(mysql_error());
$row_senaste_annonserna =
mysql_fetch_assoc($senaste_annonserna);
Hoppas detta var till mera hjälp.. :)
Före den koden så tar jag emot variablarna....Och fixar en anslutning till databasen...