webForumDet fria alternativet

Problem med SQL-fråga

1 svar · 155 visningar · startad av K@llen

K@llenMedlem sedan mars 20032 667 inlägg
#1

Hejsan,

Lite problem. Frågan fungerar fint fram till det blir träff i tabellen forum_access. Är isPublic = 0 och användaren har tillgång till forumet genom förekomst i forum_access nonchaleras datumvillkoret, vilket innebär att den listar alla trådar från det forumet oavsett datumvillkoret. Det ska med stor sannolikhet till lite paranteser, men jag får inte till det. :(

$strSQL = "SELECT * 
FROM forum_topic ft	
INNER JOIN forum_forum ff
ON ft.forumId = ff.forumId 
INNER JOIN Profil p
ON p.AnvId = ft.topicUid 
LEFT JOIN forum_access fa
ON ff.forumId = fa.forumId 
WHERE ft.topicLastActive 
BETWEEN current_date AND current_date + interval 1 day
AND ff.isPublic = 1 
AND fa.forumId is null 
OR fa.userId = " . $uId . "  
ORDER BY ff.forumName ASC, ft.topicImportant DESC, ft.topicLastActive DESC 
LIMIT " . $fromRecords . ", " . $maxPerPage . " ";
K@llenMedlem sedan mars 20032 667 inlägg
#2

Detta verkar fungera:

$strSQL = "SELECT * 
               FROM forum_topic ft	
               INNER JOIN forum_forum ff
               ON ft.forumId = ff.forumId 
	       INNER JOIN Profil p
	       ON p.AnvId = ft.topicUid 
               LEFT JOIN forum_access fa
               ON ff.forumId = fa.forumId 
               WHERE ( ft.topicLastActive BETWEEN current_date 
	       AND current_date + interval 1 day
	       AND ff.isPublic = 1 
	       AND fa.forumId is null ) 
	       OR ( fa.userId = " . $uId . " 
	       AND ft.topicLastActive BETWEEN current_date 
	       AND current_date + interval 1 day )   
	       ORDER BY ff.forumName ASC, ft.topicImportant DESC, ft.topicLastActive DESC 
               LIMIT " . $fromRecords . ", " . $maxPerPage . " ";
124 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)