Jump to content


Photo

Informar A Posição Na Espera


  • Faça o login para participar
6 replies to this topic

#1 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 16/02/2007, 14:16

Estou desenvolvendo um sistema de atendimento online, preciso informar ao usuário que está aguardando na fila de espera a posição dele nesta fila...

Algo como "Você é o 3º da fila."

Eu criei uma tabela assim

===================
Espera
----------------------------------
id - User - dataHora
1 - fulano1 - 2007-02-16 14:13:00
2 - fulano2 - 2007-02-16 14:14:00
3 - fulano3 - 2007-02-16 14:14:30
4 - fulano4 - 2007-02-16 14:15:00
===================

Mas como informar a posição do cara na lista? Imagine que eu sou o usuario de id 3

Falopa!

#2 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 16/02/2007, 14:33

ORDER BY dataHora na query SQL ?

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br


#3 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 16/02/2007, 14:51

Mas com eu faria pra mostrar pra ele somente o nome dele? eu não posso mostrar os outros usuários que estão aguardando.

Falopa!

#4 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 16/02/2007, 15:22

Há outros posts sobre isso ... não existe algo magico que diga qual a posição ....
Em geral se usam uma POG básica ...

Algo como (ordernar pela data e depois exibir):
$posicao = 1;
while(...) {
  
 if ($data["id"] == $id_fulano) {
  echo "Você é o " . $posicao . "º da fila.";
  break; // Para o while "na tentativa" de enconomizar o sistema.
 }
 
 $posicao++;
}

Acredito que essa solução seje viavel pelo fato de ser um atendimento online daí não deve ser muitas pessoas online tipo, o problema é se for para usar em sistema de Rank (a principal aplicação que desejam para isso)

#5 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 16/02/2007, 16:16

Não quero te contrariar SK15 mas vamos analizar seu código isso é que é POGramação :P
Você difiniu um valor a variavel posição
depois fez um loop pra encontrar o id_fulano que seja igual a "id_espera"
e logo abaixo você informa a posição do individuo.

Pergunta: se eu colocar $posicao = 1000 ele vai falar que todo mundo está na posicao 1000 :D ou seja todo o resto é inútil.

Onde é que o script identifica quem é quem? o que eu estou procurando é a posição dele então como é que eu vou informar isso logo de cara?

Falopa!

#6 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 16/02/2007, 19:12

Esquenta não, estamos aqui para ser questionado (eu só o mais burro daqui, so levo esporro e sou quetionado o tempo todo) ... é dificil dizer algo sem ver ... to tentado imaginar como é que está funcionado seu script por isso lancei esse código meio que por auto ....

A ideia e que quem diz a posição é o Banco de Dados ou seja, na hora da listagem o PHP só diz a hora em que ele recebeu a informação do banco de dados... tipo eu não sei de que forma vc verificia que o usuário está online ....

Vanos tentar re-fazer a ideia ... vc disse que tem essa tabela (eu inverti a ordem) ...

===================
Espera
----------------------------------
id - User - dataHora
1 - fulano4 - 2007-02-16 14:13:00 // 1º
2 - fulano2 - 2007-02-16 14:14:00 // 2º
3 - fulano1 - 2007-02-16 14:14:30 // 3º
4 - fulano3 - 2007-02-16 14:15:00 // 4º
===================


Dai vamos fazer a parte de PHP (com MySQL o mais comum):
<?php
// Pega o useronline (eu to usando sessão, partindo da premissa que sessão ta ativa o user ta online)
$fulano_on = $_SESSION["nome"]; // Esse é o "fulano3" ...

$posicao = 1; // Inicia as posições o primeiro da lista é o número 1 (obvio)
$sql = mysql_query("SELECT * FROM `espera` ORDER BY `dataHora` ASC;");
while ($datas = mysql_fetch_array($sql)) {
 // While 1: 1 - fulano4 - 2007-02-16 14:13:00 (Não exite  nada... por causa do IF)
 // While 2: 2 - fulano2 - 2007-02-16 14:14:00 (Não exite  nada... por causa do IF)
 // While 3: 4 - fulano3 - 2007-02-16 14:15:00 (Não exite  nada... por causa do IF)
 // -------
 // While 4: 4 - fulano3 - 2007-02-16 14:15:00 (Exibe pela condição do IF ...)
 if ($datas["User"] == $fulano_on) {
  echo "Você é o " . $posicao . "º da fila.";
  break; // Para o while "na tentativa" de enconomizar o sistema.
 }
 
 $posicao++; // Vai somando a posição de acordo com o "while"...
}
mysql_free_result($sql);
?>

Eu testei aqui é escreveu psoição 4º para o "fulano3", mas não sei se vc quer pegar ele em varival ou sei lá, qualquer coisa re-explique, mas assim colocar na posição 1000, ai se ta forçando, sendo que os númerais começa sempre no 1...

Edição feita por: sk15, 16/02/2007, 19:13.


#7 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 16/02/2007, 19:18

Agora que você "desenhou" eu entendi como que você queria explicar do primeiro exemplo deu muito a entender que eu ia informar manualmente a posição da pessoa para a variavel posicao.

Mas beleza valeu pela explicação.

Falopa!




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq