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

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

Dodanie wyjątku dla grupy oraz użytkownika

Założony przez  Szogi1910.

Posiadam mały problem z dodaniem wyjątku aby statystyki nie uwzględniały użytkowników w danej grupie oraz poprzez dodane uid samego użytkownika.


// Statystyki
function dvz_shoutbox_stats() {
 
 global $db$mybb$templates$theme$wpisy$users$top_spamer$users_online_o$top_spamer_noformatted$shshshs$our_shouts$timesearch$shouts$username$user$users_online$anon_online$invisiblemark$onlinemembers$guests_online$spiders$cache$bots_online;
 
 $query $db->query("SELECT count(id) as id FROM ".TABLE_PREFIX."dvz_shoutbox");
 
 // Wpisy
 
 $row $db->fetch_array($query);
 
 $wpisy $row['id'];
 
 $query3 $db->query("SELECT d.uid, u.username, u.usergroup, u.displaygroup, u.uid, u.avatar, count(*) as shouters
                          FROM "
.TABLE_PREFIX."dvz_shoutbox d
                          LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid=d.uid)
                          GROUP BY d.uid
                          ORDER BY shouters
                          DESC LIMIT 1"
);
 
 $row3 $db->fetch_array($query3);
 
 // Najwiekszy spamer
 
 $shouts $row3['shouters'];
 
 $top_spamer_noformatted $row3['username'];
 
 $top_spamer build_profile_link(format_name($row3['username'], $row3['usergroup'], $row3['displaygroup']), $row3['uid']);
 
 // Wpisy uzytkownika
 
 $query4 $db->query("SELECT count(id) as id, uid FROM ".TABLE_PREFIX."dvz_shoutbox WHERE uid='".$mybb->user['uid']."'");
 
 $our_shouts $db->fetch_field($query4"id");


Próbowałem poprzez dodanie, lecz to wywaliło mi tylko errory w momencie gdy wchodzimy na forum


WHERE u.usergroup NOT IN('1''2') AND u.uid <> ". $mybb->user['uid'] ." 

MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
   1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'GROUP BY d.uid ORDER BY shouters ' at line 5
Query:
   SELECT d.uid, u.username, u.usergroup, u.displaygroup, u.uid, u.avatar, count(*) as shouters FROM mybb_dvz_shoutbox d LEFT JOIN mybb_users u ON (u.uid=d.uid) WHERE u.usergroup NOT IN('1', '2') AND u.uid <> GROUP BY d.uid ORDER BY shouters DESC LIMIT 1

Edit

Problem leży w tym warunku
u.uid <> ". $mybb->user['uid'] ."

Edit
Jeszcze jedna metoda z której korzystałem lecz nie dała żadnych efektów
AND u.uid <> '". $mybb->user['uid'] ."'
u.uid != ". $mybb->user['uid'] ." 
Już prawie, ukrywa osobę co posiada udi =1 a jeszcze jak zrobić aby ukrywało, wskazanego użytkownika np. pod udi = 123
Mmozesz to zrobic jak z grupa i wpisac zmienna pozniej wybrane uidy - not in
Lub to co ja pokazalem oddzielajac OR
próbowałem poprzez not in dodając zmienną u.users ale za każdym razem jak dodam konkretny uid wywala mi błąd ja w poście powyżej
Pokaz swoje gotowe zapytanie, skorygujemy
$query3 $db->query("SELECT d.uid, u.username, u.usergroup, u.displaygroup, u.uid, u.avatar, count(*) as shouters
                          FROM "
.TABLE_PREFIX."dvz_shoutbox d
                          LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid=d.uid)
                          WHERE u.usergroup NOT IN('7') 
                          WHERE u.users  NOT IN('1')
                          GROUP BY d.uid
                          ORDER BY shouters
                          DESC LIMIT 1"
);
    
$row3 $db->fetch_array($query3); 
SELECT d.uidu.usernameu.usergroupu.displaygroupu.uidu.avatarcount(*) as shouters
                      FROM 
".TABLE_PREFIX."dvz_shoutbox d
                      LEFT JOIN 
".TABLE_PREFIX."users u ON (u.uid=d.uid)
 
 WHERE u.usergroup NOT IN('7')
 
 AND u.users  NOT IN('1')
 
                     GROUP BY d.uid
                      ORDER BY shouters
                      DESC LIMIT 1 
Mały postęp lecz teraz mam komunikat
Unknown column 'u.users' in 'where clause'
u.uid użyj. No i liczby całkowite z zasady podaje się bez apostrofów '



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

1 gości