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 estou 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());
Pergunta
netocazuza
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:
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.