Eu utilizo uma Trigger, e nunca tive problemas,
primeramente cria-se a table onde sera inserido o valor do recorde
rode a query, no query analizer
Código PHP:
Use [MuOnline]
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Site_recorde_on]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Site_recorde_on]
GO
CREATE TABLE [dbo].[Site_recorde_on] (
[recorde] [int] NULL ,
[data] [datetime] NULL
) ON [PRIMARY]
GO
TRUNCATE TABLE [dbo].[Site_recorde_on]
INSERT INTO [dbo].[Site_recorde_on] ([recorde],[data]) VALUES (0,getdate())
Depois cria-se a Trigger,
que automaticamente atualizara o recorde online,
se a quantidade de usuarios online for maior que o recorde
rode a query, no query analizer
Código PHP:
Use [MuOnline]
CREATE TRIGGER [dbo.webRecordeOnTrigger] ON [dbo].[MEMB_STAT]
FOR UPDATE AS
-- TRIGGER DE ATUALIZAR RECORDE ONLINE
-- BY FABRICIONAWEB
-- 04/04/2009 - 14:28
DECLARE @OLD INT, @NEW INT
SET @OLD=(SELECT recorde FROM dbo.Site_recorde_on)
SET @NEW=(SELECT count(*) FROM Memb_stat WHERE ConnectStat>=1)
IF @NEW > @OLD
BEGIN
UPDATE [dbo].[Site_recorde_on] SET recorde=@NEW,data=getdate()
END
No site, vc deve selecionar o valor da coluna recorde na tabela Site_recorde_on
Código PHP:
$Q = mssql_fetch_row(mssql_query("SELECT recorde FROM dbo.Site_recorde_on"));
echo "Recorde Online: ".(int)$Q[0];