Jump to content
netocazuza

fazer dois testes antes de gravar

Recommended Posts

Tenho uma rotina em php que está funcionando, gravando os dados numa tabela. Agora surgiu a necessidade de fazer dois testes antes da gravação, e eu não estou conseguindo ter idéia de como fazer, por isso vou postar no próprio código pra ver se entendem. O primeiro teste, é ver se o número escolhido, já foi selecionado (variável numero), e caso isso ocorra, não gravar. O outro teste é impedir que o mesmo usuário (usuário apostador)faça mais de uma aposta. Segue código:

<?php
require_once 'init.php';
// pega os dados do formuário
$data_hora = isset($_POST['data_hora']) ? $_POST['data_hora'] : null;
$apostador = isset($_POST['apostador']) ? $_POST['apostador'] : null; // quero que esse apostador não se repita. Se já estiver na tabela, avisar e sair.
$telefone = isset($_POST['telefone']) ? $_POST['telefone'] : null;
$numero = isset($_POST['numero']) ? $_POST['numero'] : null; // quero que cheque esse número na tabela existente, e caso exista, retornar para inserir outro.
 
 
// validação (bem simples, só pra evitar dados vazios)
if (empty($data_hora) || empty($apostador) || empty($telefone) || empty($numero))
{
    echo "Volte e preencha todos os campos";
    exit;
}
$hoje = date("d-m-Y H:i");
$limite = ('08-03-2019 16:35');
   if (strtotime($hoje) >= strtotime($limite)){
        echo "Esgotado o horario limite. Aguarde para o próximo sorteio!";
        exit;
    }

// a data vem no formato dd/mm/YYYY
// então precisamos converter para YYYY-mm-dd

// insere no banco
$PDO = db_connect();

// Acredito que esse teste deva ser feito aqui, antes de gravar, mas é só um palpite, pois tô mais perdido do que padre (alguns) em boate

//verificar se apostador e numero já existem na tabela, e caso exista, retornar o fluxo



$sql = "INSERT INTO palpites(data_hora, apostador, telefone, numero) VALUES(:data_hora, :apostador, :telefone, :numero)";
$stmt = $PDO->prepare($sql);
$stmt->bindParam(':data_hora', $data_hora);
$stmt->bindParam(':apostador', $apostador);
$stmt->bindParam(':telefone', $telefone);
$stmt->bindParam(':numero', $numero);
 
 
if ($stmt->execute())
{
    header('Location: index.php');
}
else
{
    echo "Erro ao cadastrar";
    print_r($stmt->errorInfo());

}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Carcleo
      Parece brincadeira, mas estou fazem 3 dias tentando instalar a cURL e não consigo
      Windows 10 Pro Apache 2.4 Php 7.3.4 MySQL 8.0.15.0 Tentativas:
      1) libeay32.dll, msvcr71.dll, ssleay32.dll e php_curl.dll coladas na pasta system32 e adicionadas ao PATH do Windows 2) Baixei a biblioteca cURL do site https://curl.haxx.se/, cliquei em curl.exe e nada acontece. 3) ;extension=CURL e ;extension=php_curl.dll descomentadas no php.ini (Embora a linha ;extension=php_curl.dll não exista nessa versão do PHP eu inserí ela na lista) 4) Confirmado de que o php.ini é o correto.  Agora só faltam 2 tentativas
       
      A) Apelar para a fé.
      B) Instalar Apache e PHP antigos pois lembro-me que usei em um projeto fazem uns anos e funcionava de boa.
           Mas não gostara de voltar no tempo.
       
      Claro que essas 2 foram só para descontrair!
       
      Alguém me ajuda? Ode estou errando?
    • By terra
      Olá,
       
      Preciso pegar o valor desse select
       
       
       aqui nessa query
       
       
      Agradeço qualquer ajuda
    • By violin101
      Caros amigos, saudações...
       
      Gostaria de tirar uma dúvida com os amigos se tem a possibilidade de fazer e como fazer.
       
      A pasta MODELS tem como fazer separado como a pasta CONTROLLERS, por exemplo:
       
      a pasta controller consigo fazer assim: PASTA e SUBPASTAS.
       
      controller
      |__ Admin
      |_____ Estoque
      |_______ Financeiro
       
      na pasta Models, fica tudo junto as funções, como por exemplo:
      admin_model.php
      caixa_model.php
      vendas_model.php
      e etc
       
      na Models, tem como fazer como na pasta controller, assim:
      |__ Admin
           |__ admin_model.php
      |_____ Estoque
                 |__ estoque_model.php
      |_______ Financeiro
                    |__ caixa_model.php
       
      para chamar uma função no controller, faço desta forma: 
      <?php $this->load->model('categorias_model'); $this->data['categorias'] = $this->categorias_model->getActive('categorias', 'categorias.idCategorias,categorias.categoria'); ?>  
      Conforme minha dúvida acima, como seria o caminho para chamar esta função:   
      $this->load->model('categorias_model');
       
       
      Grato,
       
      Cesar
    • By Samuel Pietro
      Tenho um select em PDO e preciso que a consulta retornada vire uma variavel, mas a variavel só pega a ultima linha da tabela e eu preciso que pegue todas as linhas que existirem.
       
      $conexao = conexao::getInstance(); $sql = 'SELECT * FROM RegistroE'; $stm = $conexao->prepare($sql); $stm->execute(); $Sql = $stm->fetchAll(PDO::FETCH_OBJ); foreach ($Sql as $SqlReg): $conteudo_meio = picture_X($SqlReg->E_01,1) .picture_X($SqlReg->E_02,25) .picture_9($SqlReg->E_03,4) .picture_X($SqlReg->E_04,14) .picture_9($SqlReg->E_05,8) .picture_9($SqlReg->E_06,8) .picture_9($SqlReg->E_07,8) .picture_9($SqlReg->E_08,8) .picture_9($SqlReg->E_09,8) .complementoRegistro(96,"brancos") .picture_9($SqlReg->E_11,1) .complementoRegistro(1,"brancos") ; endforeach; Como eu poderia está fazendo isto?
    • By peterstefan
      Bom dia, estou fazendo uma cadastro via rest e estou utilizando o curl para cadastrar no webservice...
      Meu código está cadastrando tudo certinho, porem quando ele cadastra e mostra o retorno que foi cadastrado com sucesso ele fica o AGUARDE, CARREGANDO e não para.. não sei oque esta faltando pq já tentei varias coisas e não deu certo... 
       
       
       
      $Data = [ "nomeRazaoSocial" => $PostData['nomeRazaoSocial'], "identMF" => $PostData['identMF'], "email" => $PostData['email'], "telefone" => $PostData['telefone'], "senhaProvisoria" => $PostData['senhaProvisoria'] ]; $DataString = json_encode($Data); $curl = curl_init(WEBSERVICECADASTRO); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($curl, CURLOPT_POSTFIELDS, $DataString); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($DataString)) ); $result = curl_exec($curl); if ($result) { $jSON['success'] = "<i class='icon-checkmark'></i>Pronto, cadastro foi realizado com sucesso!"; }else{ $jSON['error'] = "<i class='icon-warning'></i>Oops! Erro ao cadastrar! Por favor, tente novamente!"; }  

       

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.