Dołącz do zespołu ekspertów! Backend lub Frontend Developer?

Sprawdź najnowsze oferty pracy naszego partnera - 8lines.io!

modyfikacja pluginu forumcleaner

PHP/MYSQL  Założony przez  Tomkii.

Witam,

próbuje na bazie pluginu forumcleaner uzyskać coś takiego, że użytkownicy z ustawionym w userfields konkretnym wpisem są kasowani odpowiednio wcześniej niż inni. Utknełem niestety na rozbudowanym zapytaniu do bazy - wyciąga ono listę kont starszych niż $breakdate.
Oryginalnie jest:
$query $db->query("
                        SELECT
                                u.uid AS uid,
                                u.usergroup AS usergroup,
                                u.additionalgroups AS additionalgroups,
                                u.displaygroup AS displaygroup,
                                u.avatar AS avatar,
                                u.avatartype AS avatartype
                        FROM "
.TABLE_PREFIX."users u
                        WHERE u.lastvisit < '
{$breakdate}'
                        AND u.uid NOT
                        IN (
                                SELECT p.uid
                                FROM "
.TABLE_PREFIX."posts p
                        )
                "
); 
Jeśli dobrze rozumiem to po FROM muszę dołączyć sięgnięcie do tabeli userfields:
LEFT JOIN ".TABLE_PREFIX."userfields 
I kolejny problem to nie jestem pewny w którym miejscu mam dorzucić:
AND fid1 '".$field1a."'
                        
OR fid1 '".$field1b."' 
Czy w logice zapytań działają nawiasy żeby wymusić prawidłową interpretację - jeśli fid1 = xxx albo fid1 = yyy.
Czy też całość (od LEFT JOIN) należy dopisać na końcu?
Matslom napisał 14.03.2014, 19:05:
Kod umieszczamy w [code] lub [php]
Umieszczaj kod w przeznaczonych do tego tagach.

$query $db->query("
SELECT
u.uid AS uid,
u.usergroup AS usergroup,
u.additionalgroups AS additionalgroups,
u.displaygroup AS displaygroup,
u.avatar AS avatar,
u.avatartype AS avatartype
FROM "
.TABLE_PREFIX."users u
LEFT JOIN "
.TABLE_PREFIX."userfields uf ON (uf.ufid = u.uid)
WHERE u.lastvisit < '
{$breakdate}'
AND (uf.fid1 = 'xxx' OR uf.fid1 = 'yyy')
AND u.uid NOT
IN (
SELECT p.uid
FROM "
.TABLE_PREFIX."posts p
)
"
); 



Użytkownicy przeglądający ten wątek:

2 gości