• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

How to check players online from the guild?

president vankk

Web Developer & AuraOT Owner
Joined
Jul 10, 2009
Messages
5,719
Solutions
9
Reaction score
339
Hello, I was using the code below to check players online from a guild, it in TFS 0.4 works fine, but now, I don't have ideia how to check the players online from the guild, because in players table does not have status/online to check..

How I fix that? To check the players online from a guild in TFS 1.2
Code:
$allM = $SQL->query ('SELECT COUNT(1) as `people` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = '.$guild_id.') AND status = 1')->fetch();

Thanks.
 
Last edited:
@forgee
All that shit is now getting problem .-.

Check it out..
Code:
  $allM1 = $SQL->query ('SELECT SUM(`level`) as `level` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = '.$guild_id.') ')->fetch();
  $allM2 = $SQL->query ('SELECT AVG(`level`) as `level` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = '.$guild_id.') ')->fetch();
  $allM3 = $SQL->query ('SELECT `name` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = '.$guild_id.') ORDER BY `level` ASC LIMIT 1')->fetch();
  $allM4 = $SQL->query ('SELECT `name` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = '.$guild_id.') ORDER BY `level` DESC LIMIT 1')->fetch();

All that code is problems with rank_id but I don't know to replace it with what?
 
Last edited:
I wrote this as an exercise for myself to practice SQL. It collects the information you need, but not exactly the same way as the ones you have. All you need is a tiny bit of general programming knowledge to make it work with your script.
Code:
SELECT p.name, p.level, p.id, SUM(p.level) as level_total, AVG(p.level) AS level_average, guild_membership.guild_id, COUNT(guild_invites.guild_id) AS guild_invites
FROM players AS p
LEFT JOIN guild_membership
ON p.id=guild_membership.player_id
LEFT JOIN guild_invites
ON guild_membership.guild_id = guild_invites.guild_id
WHERE guild_membership.guild_id = $guild_id
ORDER BY p.level DESC
 
Still needing theses querys
Code:
$allM1 = $SQL->query ('SELECT SUM(`level`) as `level` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = '.$guild_id.') ')->fetch();
$allM2 = $SQL->query ('SELECT AVG(`level`) as `level` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = '.$guild_id.') ')->fetch();
$allM3 = $SQL->query ('SELECT `name` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = '.$guild_id.') ORDER BY `level` ASC LIMIT 1')->fetch();
$allM4 = $SQL->query ('SELECT `name` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = '.$guild_id.') ORDER BY `level` DESC LIMIT 1')->fetch();
 
Back
Top