Informar A Posição Na Espera
Started By hostdesigner, 16/02/2007, 14:16
6 replies to this topic
#1
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!
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!
#3
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!
Falopa!
#4
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):
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)
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
Posted 16/02/2007, 16:16
Não quero te contrariar SK15 mas vamos analizar seu código isso é que é POGramação
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 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!
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 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
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) ...
Dai vamos fazer a parte de PHP (com MySQL o mais comum):
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...
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
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!
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)