Ir para conteúdo

Arquivado

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

felpsquirino

Verificar status no BD e atualizar página automaticamente

Recommended Posts

Olá Pessoal,

 

Não faço ideia de como posso fazer para que ao mudar um "status" de "0" para "1" em uma linha no banco de dado uma pagina dar refresh sozinha.

 

Sobre o site: 

É um site para executar um video do youtube simultâneo no pc e no celular, Já possui uma página para pc e uma outra para acessar no celular.

 

O Fluxo funciona assim: 

1 - Ao acessar o site pelo pc, vai ser exibido toda a instrução para acessar a outra página no celular.

2 - Quando acessar a página pelo celular, vai ser criado uma linha no banco de dados que possui 3 colunas (id - Auto incremente / código - Salva um cod. aleatório / status - padrão "0"). Será exibido um código para digitar no input text da pagina que  está aberta no pc.

3 - Após digitar o codigo na pagina que está aberta no pc e dar um submit nesse código, vai ser alterado o status dessa linha no BD de "0" para "1".

4 - Assim q alterar o status para "1" a pagina do celular da um refresh automático.  

 

Observação: todo o fluxo já está pronto, o que eu preciso é só fazer esse refresh sozinho na página do celular ao mudar o status de "0" para "1". 

 

Como posso fazer isso? Muito obrigado pela atenção! 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Certo é usar Jquery para isso... passo a passo:

 

1  - Adicione o Jquery em seu sistema

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

2 - Vamos criar uma input do type hidden , e adicionar o código "aleatório" no qual será feito a busca futuramente.

<!-- Não se esqueça do value e do id -->
<input type="hidden" id="codigo" value="45645645" >

3 - Agora criamos a função de fazer a consulta e atualizar a página

 $(function() {
   setTime();
   function setTime() {
       //Pegando o codigo da inout invisivel
      var cod = $('#codigo').val();
     
      //Enviando um post a cada 3segundos para o arquivo php que irá consultar
		setTimeout(function() {
		$.post('consulta.php',{cod:cod},function(data){
          //Se o resultado da consulta for 1 atualiza
          if(data == 1){
            location.href="";
          }else{
           //Se não não faz nada
          }
         });			
        }, 3000);
     
 }

4 - Vamos agora criar o arquivo consulta.php

<?php
//Vamos verificar se existe o POST cod
if(isset($_POST['cod'])){
  $cod  = $_POST['cod']; //Agora o código vindo do post esta da variavel
  
  //Aqui faça a consulta no banco de dados na tabela que você precisa - ACHO QUE ISSO VOCÊ SABE FAZER 
  //APOS A CONSULTA VERIFICA SE O STATUS AONDE TEM ESTE CÓDIGO ALI É IGUAL A 1
  //SE FOR IGUAL A 1 DA UM ECHO 1 , SE NÃO DA UM ECHO 0 : OLHA

  
   if($result['status'] == "1"){
    echo "1";
  }else{
   echo "0";  
  }  
 }
?>

Isso vai funcionar ;) ... boa sorte

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Luan, muito obrigado pela explicação e pela atenção... era exatamente isso que eu estava tentando fazer, inseri esse Js e criei o arquivo de consulta em php, adicionei tbm a query de consulta quando o status = "1" e o código for o mesmo que esta no value do input "codigo" ele da o echo "1" ou echo "0".

 

O que acontece é q não atualiza a pagina mesmo exibindo o "1" "consulta.php" poderia ser o "data" do JS ? vou postar o código para você ver o q pode estar errado:

 

consulta.php:

<?php
//conexao! 
include("../connect.php"); 
//Vamos verificar se existe o POST cod
if(isset($_POST['cod'])){
  $cod  = $_POST['cod']; //Agora o código vindo do post esta da variavel
  
  //Aqui faça a consulta no banco de dados na tabela que você precisa - ACHO QUE ISSO VOCÊ SABE FAZER 
  //APOS A CONSULTA VERIFICA SE O STATUS AONDE TEM ESTE CÓDIGO ALI É IGUAL A 1
  //SE FOR IGUAL A 1 DA UM ECHO 1 , SE NÃO DA UM ECHO 0 : OLHA

  $selectStatus =  mysql_query("SELECT codigo, status FROM app_sinc WHERE codigo = '$cod' AND status = '1'") or die (mysql_error());
  $contaStatus = mysql_num_rows($selectStatus);

  
   if($contaStatus >= 1){
    echo "1";
  }else{
   echo "0";  
  }  
 }
?>

Javascript: 

 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script>
    	$(function() {
		   setTime();
		   function setTime() {
		       //Pegando o codigo da inout invisivel
		      var cod = $('#codigo').val();
		     
		      //Enviando um post a cada 3segundos para o arquivo php que irá consultar
				setTimeout(function() {
				$.post('consulta.php',{cod:cod},function(data){
		          //Se o resultado da consulta for 1 atualiza
		          if(data == 1){
		            location.href="video.php";
		          }else{
		           //Se não não faz nada
		          }
		         });			
		        }, 1000);
		     
		 }
    </script>

  

eu acho que deve ser ali no data do js que não está reconhecendo o "0" e "1" que retorna do arquivo consulta.php o que pode estar errado? 

 

Grato!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom então tenta colocar o 1 , ali do JS, entre aspas

Em 18/12/2017 at 12:14, felpsquirino disse:

if(data == 1){ location.href="video.php"; }else{ //Se não não faz nada }

Por

if(data == "1"){ location.href="video.php"; }else{ //Se não não faz nada }

Talvez se este for o problema ira resolver...

Caso nao resolva, tente colocar outro identificador quando o status for 1

 

 

Recomendo que você de um alert no data, so pra ver oque esta retornando...

Ex:

Comenta esta linha

if(data == 1){ location.href="video.php"; }else{ //Se não não faz nada }

E insere isso:

alert(data);

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Quencyjones79
      Olá boa tarde, sou iniciante na linguagem PHP, embora tenha umas noções básicas do código e estou com algumas dificuldades dúvidas no código que está a cor de laranja, se alguém que perceba de código PHP se me puder ajudar, agradecia imenso a ajuda.
       
       
      <?php 
      include "..\ligacao.php";
      ?>
               
      <?php
      $idFunc=$_POST['idFunc'];
      $NomeAlterado=$_POST['NomeAlterado'];
      $idLoja=$_POST['idLoja'];
      $permissao=$_POST['permissao'];
      if($idLoja=="Selecione..."){
          $idLoja=$_POST['idLojaAtual'];
      }
      if($permissao==NULL){
          $qfunc="UPDATE funcionario SET nome_func='".$NomeAlterado."',id_loja='".$idLoja."' WHERE id_func='".$idFunc."'";
          $connfunc=mysqli_query($ligax,$qfunc); 
       }else{    
          $qfunc="UPDATE funcionario SET nome_func='".$NomeAlterado."',id_loja='".$idLoja."', ativo_func='".$permissao."' WHERE id_func='".$idFunc."'";
          $connfunc=mysqli_query($ligax,$qfunc);
       }
      if($connfunc==1){
           print"<script> alert('Funcionário alterado com sucesso!');
                       location.href='../inserirfuncionario.php';</script>";
          exit;
      }else{
      print"<script> alert('Não foi possível alterar o Funcionário!');
          location.href='../inserirfuncionario.php';</script>";
      exit;
      }    
      ?>
       
      Atentamente,
       
      José Moreira
       
    • Por Quencyjones79
      Olá boa tarde, sou iniciante na linguagem PHP, embora tenha umas noções básicas do código e estou com algumas dificuldades dúvidas no código que está a cor de laranja, se alguém que perceba de código PHP se me puder ajudar, agradecia imenso a ajuda.
       
       
      <?php 
      include "..\ligacao.php";
      ?>
               
      <?php
      $idFunc=$_POST['idFunc'];
      $NomeAlterado=$_POST['NomeAlterado'];
      $idLoja=$_POST['idLoja'];
      $permissao=$_POST['permissao'];
      if($idLoja=="Selecione..."){
          $idLoja=$_POST['idLojaAtual'];
      }
      if($permissao==NULL){
          $qfunc="UPDATE funcionario SET nome_func='".$NomeAlterado."',id_loja='".$idLoja."' WHERE id_func='".$idFunc."'";
          $connfunc=mysqli_query($ligax,$qfunc); 
       }else{    
          $qfunc="UPDATE funcionario SET nome_func='".$NomeAlterado."',id_loja='".$idLoja."', ativo_func='".$permissao."' WHERE id_func='".$idFunc."'";
          $connfunc=mysqli_query($ligax,$qfunc);
       }
      if($connfunc==1){
           print"<script> alert('Funcionário alterado com sucesso!');
                       location.href='../inserirfuncionario.php';</script>";
          exit;
      }else{
      print"<script> alert('Não foi possível alterar o Funcionário!');
          location.href='../inserirfuncionario.php';</script>";
      exit;
      }    
      ?>
       
      Atentamente,
       
      José Moreira
       
    • Por Jack Oliveira
      Olá pessoal boa noite
      estou tendo um problema em mostra os Status como Ativo
      no código php á definir para ser salvo como Ativo EX: 'status' =>  'S',
      ele grava de boa 
      mais lista Inativo mesmo estando no banco o valor S
       
      para me mostrar se esta Ativo e Inativo fiz desta forma
       
      <?php if ($ListarCatalogo['status'] == 'S'){ ?> <span><a href="?DesativarStatus=<?php echo $ListarCatalogo['id']; ?>" title="Item Inativo (<?php echo $ListarCatalogo['titulo']; ?>)" data-toggle="tooltip" class="btn btn-sm btn-danger"><i class="fa fa-ban"></i></a></span> <?php }else{ ?> <span><a href="?AtivarStatus=<?php echo $ListarCatalogo['id']; ?>" title="Item Ativo ( <?php echo $ListarCatalogo['titulo']; ?>)" data-toggle="tooltip" class="btn btn-sm btn-success"><i class="fa fa-check"></i></a></span> <?php } ?> Tentei usar da seguinte forma tbm mais mesmo assim fica só invertido 
      o que não seria o caso quando salvo ele não define nada
      <?php if ($ListarCatalogo['status'] !== 'S'){ ?>
       
      Vou mostra o código aqui mais sei que o problemas não esta aqui.
      só para que todos possa entender melhor
      // Ativar if (isset($_GET['AtivarStatus'])) { $id = get('AtivarStatus'); $AtualizaCliente = array( 'status' => 'S' ); $Query = DBUpdate("catalogo",$AtualizaCliente,"id = '{$id}'"); if ($Query != 0) { Redireciona('?sucesso'); } elseif ($Query == 0) { Redireciona('?erro'); } } // Desativar if (isset($_GET['DesativarStatus'])) { $id = get('DesativarStatus'); $AtualizaCliente = array( 'status' => 'N' ); $Query = DBUpdate("catalogo",$AtualizaCliente,"id = '{$id}'"); if ($Query != 0) { Redireciona('?sucesso'); } else { Redireciona('?erro'); } } Este é o que faz o cadastro esta funcionando normal
      // Adicionar Catalogo if (isset($_GET['Adicionar'])) { $Adicionar = array( 'titulo' => post('titulo'), 'preco' => post('preco'), 'data' => date('d/m/Y'), 'status' => 'S', 'id_categoria' => post('id_categoria'), 'obs' => post('obs'), 'descricao' => post('descricao'), 'id_user' => DadosSession('id'), 'codigo_produto' => post('codigo_produto'), 'imagem' => $Imagem ); $Query = DBCreate('catalogo', $Adicionar); if ($Query != 0) { Redireciona('?sucesso'); } else { Redireciona('?erro'); } } Espero que possam entender 
    • Por snkGOD
      Olá a todos, estou com um pequeno projeto em mente, ele consiste em basicamente ter um website que guarde informações sobre jogadores de futebol como se fosse um cartola FC. Quantas partidas disputadas, gols marcados, passes pra gols, faltas cometidas e faltas sofridas entre outros. E claro no caso do cartola, as pontuações e valor de cada um baseado no seu rendimento semanal. Como eu disse, é um pequeno projeto, guardará apenas dados de no máximo uns 50 jogadores. Gostaria de dicas sobre o que estudar especificamente e se existe algum script ou tutorial que me ajude nessas questões. Grato desde já à todos que se propuserem a ajudar.
    • Por Spybrbr
      Boa noite,
       
      Estou precisando exibir o status de um pedido como nesse exemplo abaixo:
       

       
      Alguem poderia me dar uma dica de como fazer?
×

Informação importante

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