webForumDet fria alternativet

Filtrera poster

2 svar · 399 visningar · startad av DavidB

DavidBMedlem sedan jan. 20001 372 inlägg
#1

Tjena

försöker att filtrera ut vissa poster från en databas men har stött på problem

mina tabeller serut såhär:

POSTS
id | text

FILTER_POSTS
id | post_id | filter_id

det jag vill är att beroende på vilka värde man valt i filtertabellen så skall
man få fram de poster från POSTS som är relaterade till dessa.

filter_id får jag från några dropdownlistar som jag har på min websida.

har försökt med följande sql-fråga:

SELECT *.posts FROM posts, filter, filter_posts
WHERE posts.id = filter_posts.post_id

AND filter_posts.filter_id = 5
AND filter_posts.filter_id = 7

får inte ut något värde alls med ovanstående kod.

använder jag dock denna så får jag ut de poster som är relaterade till filter 5.

SELECT *.posts FROM posts, filter, filter_posts
WHERE posts.id = filter_posts.post_id

AND filter_posts.filter_id = 5

ser tyvärr ingen lösning på detta, börjar kanske bli lite trött. nån som ser hur jag skall göra?

använder mysql

M@rtinMedlem sedan dec. 19992 085 inlägg
#2

Vet inte om jag förstod alla sidor i ditt problem men borde inte detta fungera?

SELECT * FROM posts WHERE id IN (SELECT post_id FROM filter_posts WHERE filter_id=ditt_filter_id);
@ndersMedlem sedan juni 200032 969 inlägg
#3

DavidB skrev:

har försökt med följande sql-fråga:

SELECT *.posts FROM posts, filter, filter_posts
WHERE posts.id = filter_posts.post_id

AND filter_posts.filter_id = 5
AND filter_posts.filter_id = 7

får inte ut något värde alls med ovanstående kod.

Nej, det är ju inte så konstigt. Filter_id kan ju inte vara både 5 och 7, på samma post.

AND filter_posts.filter_id IN (5, 7)

Sedan ska det vara posts.*, inte *.posts.

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