Wyświetlanie prefiksu wątku.

PHP/MYSQL  Założony przez  GiboneKPL.

Witam. "Podjąłem się próby" poprawienia trochę Recent topics index i teraz mam problem.. O tuż dodałem opcje czy prefiks ma się wyświetlać.

Tak wygląda podstawowy sql w którym wyszukuje wątki tylko z prefiksem:
    $query $db->query("
    SELECT t.tid, t.fid, t.subject, t.lastposteruid, t.prefix, p.displaystyle, p.pid, t.lastposter, t.lastpost, f.name, u.username, u.usergroup, u.displaygroup, u.avatar, u.uid
    FROM "
.TABLE_PREFIX."threads as t,  
    "
.TABLE_PREFIX."forums as f,  
    "
.TABLE_PREFIX."users as u, 
    "
.TABLE_PREFIX."threadprefixes as p
    WHERE u.username=t.lastposter 
    AND f.fid = t.fid 
    AND p.pid = t.prefix
    AND t.visible = 1 
$where_sql
    ORDER BY t.lastpost 
    DESC LIMIT " 
$mybb->settings["recenttopicslimit"]); 

A tak trochę przerobiony:
    $query $db->query("
    SELECT t.tid, t.fid, t.subject, t.lastposteruid, t.prefix, p.displaystyle, p.pid, t.lastposter, t.lastpost, f.name, u.username, u.usergroup, u.displaygroup, u.avatar, u.uid
    FROM "
.TABLE_PREFIX."threads as t,  
    "
.TABLE_PREFIX."forums as f,  
    "
.TABLE_PREFIX."users as u, 
    "
.TABLE_PREFIX."threadprefixes as p
    WHERE u.username=t.lastposter 
    AND f.fid = t.fid 
    AND t.visible = 1 
$where_sql
    GROUP BY t.subject
    ORDER BY t.lastpost 
    DESC LIMIT " 
$mybb->settings["recenttopicslimit"]); 

I tutaj pojawia się problem.. Przy pierwszym wyszukuje tylko wątki z prefiksem. Przy drugim wyszukuje wszystkie aktywne wątki ostatnio tylko że pokazuje złe prefiksy, a jak temat nie ma prefiksu to i tak go pokazuje.

Tutaj DL tego pluginu (przerobionego) z 1 sql`em. http://grafifor.pl/Temat-prefixy-nie-pok...3#pid30823

Help! :D
WHERE u.username=t.lastposter 
    
AND f.fid t.fid 
    
AND t.visible 1 $where_sql 
Nie widzę warunku po którym ma wyszukiwać prefixy.
Otóż wyrzuciłeś warunek po którym odpowiedni prefix był wyszukiwany - więc pobiera byle jaki.
Wytnij tabelę *_threadprefixes z listy FROM i dodaj ją w taki sposób:
LEFT JOIN ".TABLE_PREFIX."threadprefixes as p ON p.pid=t.prefix 
Zapytanie zwróci listę tematów z wartością NULL dla danych prefiksu, jeśli takiego nie odnaleziono (nie był ustawiony w wątku).



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

1 gości