Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

  • 0
Bijoian

buscar usuarios logado para dentro de 2 equipes de 5 pessoas

Pergunta

bom dia Forum, estou aprendendo a programar em php +mysql. entao sou bem nubs. 

 

estou tentando criar uma pagina onde os usuários  se cadastra - se e jogue estilo um Rank.

 

Então nesse  nesse projeto constituem:

Acessa o site

usuário cria uma conta,  ( já fiz o formulário com a conexão com o banco de dados)

 faz o login ( já criado )

 

('Ai ele procura uma partida, onde ja tem usuários esperando a formação da equipe."")

então esse e meu problema como posso fazer uma buscar das pessoas online que já abriu e esta aguardando ( essa disputa)

 

 

 

 

Pessoal quero aprender, então se não for pedir muito queria uma explicação, e não o código pronto, ou uma forma de montar o codigo

Alguem pode me ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

10 respostas a esta questão

Recommended Posts

Cara, se quiser em tempo real, eu diria pra usar sokect (porém isso não é tão simples);

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Itlpps desculpe o que seria sokect ??? pois sou bem leigo, estou entrando na area agora

2 minutos atrás, itlpps disse:

Cara, se quiser em tempo real, eu diria pra usar sokect (porém isso não é tão simples);

 

Itlpps desculpe o que seria sokect ??? pois sou bem leigo, estou entrando na area agora

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como o @itlpps disse, em tempo real você pode fazer isso com sockets, mas é um tanto quanto complicado.

 

Você pode fazer de outro modo 'gambiarra':

 

Você vai criar um tabela para a fila

 

id | usuario | posicao

 

Segundo uma tabela para as partidas:

 

id | partida | usuario

 

O processo seria o seguinte, a cada usuário acrescentado na fila, você adiciona um na posição.

 

Depois de dizer que o usuário esta na fila, você vai usar o método setInterval do javascript para disparar um requisição ajax que vai verificar quem novos usuários na fila cada X segundos.

 

Assim que somar 10 usuários na fila, remover os 10 usuários da tabela fila, e adicionar os mesmo a tabela 'jogo', e cria um identificação em comum para os 10, assim você vai saber que eles estão no mesmo lobby.

 

E no seu arquivo PHP que foi chamado pela requisição ajax você vai identificar quem está na fila, e colocar o usuário atual junto na fila, e verificar caso usuários na fila seja = 10, mover para sala, e remover da fila.

 

O método setInterval não vai funcionar muito bem, mas é uma solução, ja que trabalhar com websocket sendo muito iniciante acredito que é relativamente impossível (relativamente porque nada é impossível kk).

 

Mas, aqui tem tudo que você precisa saber pra trabalhar com websocket levando em conta que ja sabes as linguagens necessárias, qualquer coisa faça mais perguntas.

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, AnthraxisBR disse:

Como o @itlpps disse, em tempo real você pode fazer isso com sockets, mas é um tanto quanto complicado.

 

Você pode fazer de outro modo 'gambiarra':

 

Você vai criar um tabela para a fila

 

id | usuario | posicao

 

Segundo uma tabela para as partidas:

 

id | partida | usuario

 

O processo seria o seguinte, a cada usuário acrescentado na fila, você adiciona um na posição.

 

Depois de dizer que o usuário esta na fila, você vai usar o método setInterval do javascript para disparar um requisição ajax que vai verificar quem novos usuários na fila cada X segundos.

 

Assim que somar 10 usuários na fila, remover os 10 usuários da tabela fila, e adicionar os mesmo a tabela 'jogo', e cria um identificação em comum para os 10, assim você vai saber que eles estão no mesmo lobby.

 

E no seu arquivo PHP que foi chamado pela requisição ajax você vai identificar quem está na fila, e colocar o usuário atual junto na fila, e verificar caso usuários na fila seja = 10, mover para sala, e remover da fila.

 

O método setInterval não vai funcionar muito bem, mas é uma solução, ja que trabalhar com websocket sendo muito iniciante acredito que é relativamente impossível (relativamente porque nada é impossível kk).

 

Mas, aqui tem tudo que você precisa saber pra trabalhar com websocket levando em conta que ja sabes as linguagens necessárias, qualquer coisa faça mais perguntas.

muito obrigado, vou colocar em pratica e depois coloco o script aqui  para dar uma analizada.

 

desde ja agradeço a intençao de me ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, itlpps disse:

Ou se for fazer assim como @AnthraxisBR disse, talvez compense dar uma olhada em um "Real time data base", como o firebase por exemplo.

 

boa tarde @itlpps @AnthraxisBR  eu criei um script em java.  ve o que você acham.

 

A função e procurar os jogadores com mesmo nível e colocar na mesma disputa. 

 

';

function inicializa_disputa(disputa, tipo) {

    window.setInterval(function () {
        tem_oponente(disputa, tipo);
    }, 5000);
}

function disputa_status(disputa, tela) {

    window.setInterval(function () {
        ajax_status(disputa, tela);
    }, 5000);
}

function disputa_jogadores_confirma(disputa_cod, equipe, lider, modo) {

    window.setInterval(function () {
        ajax_jogadores_grupo(disputa_cod, equipe, lider, modo);
    }, 2000);
}

function disputa_jogadores_tempo(disputa_cod) {

    window.setInterval(function () {
        ajax_jogadores_tempo(disputa_cod);
    }, 2000);
}


function tem_oponente(disputa, modo) {
    $.ajax({
        url:  '/' + jogo + '/includes-acoes/disputas/ajax-tem-jogador.php?3',
        type: 'get',
        success: function (retorno) {
            if (retorno) {
                window.location = retorno;
            }
        }
    });
}

function ajax_status(disputa, tela) {
    $.ajax({
        url: '/' + jogo + '/includes-acoes/disputas/ajax-partida-status.php?2&tela=' + tela,
        type: 'get',
        success: function (retorno) {
            if (retorno) {
                window.location = retorno;
            }
        }
    });
}

function remover_jogador(disputa, jogador_cod) {

    $('#link_remover').attr('href', '../conta/disputa-confirma-grupo?1&disputa=' + disputa + '&acao=remover-jogador&jogador=' + jogador_cod)

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa, só acrescentando um dica pra você, tente usar reguladores pra controlar a execução dos métodos.

 

Seria algo como isso (Aqui indicando pra iniciar on ready):

 

var pai = function () {

    var herdeiro = function () {
    	alert('eu sou um método controlado')
    };
    return {

        init: function () {
            herdeiro();
        }

    };
}();
jQuery(document).ready(function () {
    pai.init();
});

Assim você um controle maior do que você está fazendo e de quando você chama/deve chamar determinado método.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
4 minutos atrás, AnthraxisBR disse:

Boa, só acrescentando um dica pra você, tente usar reguladores pra controlar a execução dos métodos.

 

Seria algo como isso (Aqui indicando pra iniciar on ready):

 


var pai = function () {

    var herdeiro = function () {
    	alert('eu sou um método controlado')
    };
    return {

        init: function () {
            herdeiro();
        }

    };
}();
jQuery(document).ready(function () {
    pai.init();
});

Assim você um controle maior do que você está fazendo e de quando você chama/deve chamar determinado método.

 

desculpe sou novo , pois so colei meu cod, eu nao sei formatar

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Bijoian
      bom dia Forum, estou aprendendo a programar em php +mysql. entao sou bem nubs. 
       
      estou tentando criar uma pagina onde os usuários  se cadastra - se e jogue estilo um Rank.
       
      Então nesse  nesse projeto constituem:
      Acessa o site
      usuário cria uma conta,  ( já fiz o formulário com a conexão com o banco de dados)
       faz o login ( já criado )
       
      ('Ai ele procura uma partida, onde ja tem usuários esperando a formação da equipe."")
      então esse e meu problema como posso fazer uma buscar das pessoas online que já abriu e esta aguardando ( essa disputa)
       
       
       
       
       
       
       
       
       
       
      Pessoal quero aprender, então se não for pedir muito queria uma explicação, e não o código pronto
    • Por Jullyheder
      Ola, gostaria de saber pq ta dando e erro quero que exibe os cadastro e depois pra mim editar so que a onde eu uso mysql_fetch_assoc nao ta aceitando
       
      form_list_pedidos.php
      <!doctype html>
      <html>
      <head>
          <meta charset="utf-8">
          <title> Listagem </title>
      </head>
          <body>
              <?php
                  include("conexao.php");
                  
                  $sql = mysql_query("select * from pedido order by nome asc ");
                  
                  while( $exibe = mysql_fetch_assoc($sql)):
                  
                  echo "<a href='form_edit_pedidos.php?&codigo='".$exibe['codigo']."'>Editar</a> | ";
                  echo $exibe["codigo"]." | ";
                  echo utf8_encode($exibe["nome_do_cliente"])." | ";
                  echo $exibe["data"]." | ";
                  echo $exibe["valor_total"]." | ";
                  
                  endwhile;
              
              
              ?>
          </body>
      </html>
       
      form_edit_pedidos.php
      <!doctype html>
      <html>
      <head>
          <meta charset="utf-8">
          <title> Listagem </title>
      </head>
          <body>
          
          <?php
              include("conexao.php");
              
              $codigo = $_GET["codigo"];
              
              $sql = mysql_query("select * from pedido where codigo='$codigo'");
              
              $exibe = mysql_fetch_assoc($sql);
          
          ?>
              <form action="update.php" method="post">
              
              <input name="codigo" type="hidden" value="<?php echo $exibe["codigo"]; ?>" />
              
              <br>Nome: <input name="nome" type="text" value="<?php echo $exibe["nome_do_cliente"]; ?>" />
              <br>Data: <input name="data" type="text" value="<?php echo $exibe["data"]; ?>" />
              <br>Valor: <input name="valor" type="text" value="<?php echo $exibe["valor_total"]; ?>" />
              <br>
              <br>
              <input name="" type="submit" value="Editar" />
              
              </form>
          </body>
      </html>
       
      update.php
      <?php
          include("conexao.php");
          
          $codigo = $_POST['codigo'];
          $nome = $_POST['nome'];
          $data = $_POST['data'];
          $valor = $_POST['valor'];
          
          if(mysql_query("update pedido set nome_do_cliente='$nome', data='$data', valor_total='$valor' where codigo='$codigo'")){
              echo "Alterado! <br/>";
              exit;
          }else{
              echo mysql_error();
              exit;
          }
      ?>
    • Por cabaçonophp
      glr....montei essa procedure, mas pelo que entendi ela não faz o replace de dados no banco. Os parâmetros são recebidos (aparentemente) corretos, mas o banco não é sensibilizado.

      Vlw quem puder ajudar!!!


      delimiter $$


      CREATE PROCEDURE aquinarua.sp_update_operador(

      IN unidade_interna VARCHAR(100),
      nome VARCHAR(45),
      /*IN id_cpf VARCHAR(45),*/
      telefone VARCHAR(45),
      celular VARCHAR(45),
      email VARCHAR(45),
      apelido VARCHAR(45),
      cod_operador VARCHAR(50),
      tipo VARCHAR(45),
      filial VARCHAR(45),
      sexo VARCHAR(45),
      senha VARCHAR(45),
      status varchar(5)
      )
      BEGIN

      REPLACE INTO tbl_cad_user (unidade_interna, nome, /*id_cpf,*/ telefone, celular, email, apelido, cod_operador, tipo, filial, sexo, senha, status) VALUES ('unidade_interna', 'nome', /*'id_cpf',*/ 'telefone', 'celular', 'email', 'apelido', 'cod_operador', 'tipo', 'filial', 'sexo', 'senha', 'status');

      END$$

      delimiter ;
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.