Ir para conteúdo
Fórum Script Brasil
  • 0

TEm como fazer uma contagem de quantos dados serão escritos no while e


lucas1407

Pergunta

OI galera, eu fiz um codigo para ver quem está online na minha página, e deu certo, o problema é o seguinte:

o código que fiz é esse:

function list_users_online() {
    $sql = "SELECT * FROM `users` ORDER BY id";
    $result = mysql_query($sql) or die("Falha na execução da consulta");
    
    while ($row = mysql_fetch_array($result))
    {
    $id = $row["id"];
    $user = $row["user"];
    $id_group = $row["group_id"];
    $register = $row["register"];
    $last_entry = $row["last_entry"];
    $user_posts = $row["user_posts"];
    $time_now = date("dmYGi");

        if($last_entry <= $time_now+30 && $last_entry >= $time_now-30)
        {
            echo $user.", ";
        }
    }
}

agora eu queria saber o número de pessoas que vai ficar nessa lista para eu colocar dessa forma na página:

Há (número) de users online

E eles são: (nomes)

agora eu queria saber como faço para pegar o número, e de preferências dentro dessa função, deixando o número dentro de uma constante ou variável global.

para ver os nomes eu faço isso:

E eles são: <?php list_users_online(); ?>

---------------

@ tem um código que descobre o número de todas as pessoas que estão vendo a página(registrados e visitantes)?

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

O que svjets quis dizer seria mais ou menos assim:

function list_users_online() {
    $sql = "SELECT * FROM `users` ORDER BY id";
    $result = mysql_query($sql) or die("Falha na execução da consulta");
    $i = 0;
    while ($row = mysql_fetch_array($result))
    {
    $id = $row["id"];
    $user = $row["user"];
    $id_group = $row["group_id"];
    $register = $row["register"];
    $last_entry = $row["last_entry"];
    $user_posts = $row["user_posts"];
    $time_now = date("dmYGi");

        if($last_entry <= $time_now+30 && $last_entry >= $time_now-30)
        {
            echo $user.", ";
            $i++;
        }
    }
}

Onde a variável $i sera o numero de usuários online.

Link para o comentário
Compartilhar em outros sites

  • 0

vlw os dois, agora só falta eu por o $i numa outra função, mas deixa pra lá

@ Eu qeuro saber quantas mensagens cada user tem, e depois por na ordem de maior para o menor n° de mensagens.

como eu faço isso sabendo que eu tenho a tabela mensagens e ela tem a coluna id_autor?

Desculpa se ficou mal explicado, se sim eu tento explicar melhor.

Link para o comentário
Compartilhar em outros sites

  • 0

Num sistema de fórum creio que esta informação seria interessante estar em um campo referente ao usuário, ir incrementando a cada nova postagem do usuário e aí fazer uma busca com order by nº de postagens DESC. Se for fazer a contagem a cada acesso pode ficar lento. Imagine um fórum com 5 mil usuários e 1 milhão de posts, fica complicado ler 1 milhão de posts, contar quanto são de cada usuário e aí ordenar pelo maior número de postagens. De qualquer forma, o ideal seria fazer assim:

$sql=mysql_query("select * from mensagens");
while($linha=mysql_fetch_array($sql))
{
  if(!isset($nro[$linha['id_autor']])
  {
    $nro[$linha['id_autor']]=1;
  }
  else
  {
    $nro[$linha['id_autor']]++;
  }
}
arsort($nro);
foreach ($nro as $key => $val) {
    echo "$key = $val\n";
}

Neste exemplo ele irá escrever uma lista com o id do usuário e o número de posts em ordem decrescente, porém só dos usuários que possuem algum post, neste exeplo ele não listará os usuários registrados e que não postaram ainda.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...