webForumDet fria alternativet

Allt eller ett..

Databaser & SQLur Databashanterare & SQL

7 svar · 249 visningar · startad av slow

Medlem sedan apr. 2004148 inlägg
Frågan#1

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)

Medlem sedan juni 200032 967 inlägg
#2

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";
Medlem sedan apr. 2004148 inlägg
#3

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.. :(

Medlem sedan juni 200032 967 inlägg
#4

Var skapar du SQL-frågan någonstans?

Medlem sedan apr. 2004148 inlägg
#5

I filen som tar emot mina variablar från en sida vars jag har formuläret? Eller vad menar du? :D

Medlem sedan juni 200032 967 inlägg
#6

Hm, ja. Tänkte mig ett svar på vad för sorts applikation. En webbsida? ASP? PHP? JSP? ASP.NET? Hur ser den koden ut?

SQL-frågan uppstår väl inte av sig själv? :)

Medlem sedan apr. 20031 660 inlägg
#7

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

Medlem sedan apr. 2004148 inlägg
#8

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...

136 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)