Registro recém inserido pode SUMIR?
Bom dia,
Preciso de ajuda em uma questão. Vejam o código:
//Gravo a carta na tabela
$erro = retorna_valor("INSERT INTO cartas (id_jogo, id_mesa, carta, equipe, ordem) VALUES ('$id_jogo', '$mesa', '$carta', '$equipe', '$posicao' )");
//echo "<script>alert('algum erro ao tentar adicionar a carta? $erro')</script>";//vefifico se a carta foi gravada com sucesso
$verifica = retorna_valor("SELECT carta FROM cartas WHERE equipe = '$equipe' AND id_mesa = '$mesa' AND id_jogo = '$id_jogo' AND carta = '$carta'");
if($verifica == $carta){
//executo funcao que valida se a carta é válida, essa função retorna "invalido" ou "valido"
$regras = valida_carta($equipe, $id_jogo, $mesa);
if($regras == "invalido"){
retorna_valor("DELETE FROM cartas WHERE id_mesa = '$mesa' AND equipe = '$equipe' AND carta = '$carta'");
echo "<script>alert('Jogo invalido...')</script>";
}elseif($regras == "valido"){
retorna_valor("DELETE FROM mao_jogador WHERE id_mesa = '$mesa' AND player = '$jogador' AND carta = '$carta'");
}
}A idéia é bem simples:
- Gravo a carta,
- Verifico se foi gravada,
- Verifico se é Válida,
- Se for inválida deleto a carta que acabei de gravar
- Se for válida deleto a carta que estava na mão do jogador para que ela exista apenas na tabela cartas.
Funciona 90% do tempo perfeitamente, porém, começou a acontecer algo estranho. A carta é gravada, verifica, validada sem problema nenhum, é deletada da mão do jogador, porém, ao final do script a carta "desaparece" do banco de dados, sem a mensagem de "inválida" porque ele nem chega a entrar na rotina de "deleção" da carta, eu já comentei a linha "DELETE FROM cartas WHERE"... E mesmo não havendo função para deletar a carta, ela é gravada, validada e some...
Isso não acontece 100% das vezes, acontece quase "raramente", no entanto compromete completamente o sistema essa possibilidade.
Caso alguém saiba alguma coisa que possa estar ocasionando isso, ficaria muito agradecido em ouvir sugestões... Até pensei ser uma instabilidade do servidor MSQL que por alguma razão está dando um "server back" ou sei lá... Estou meio sem idéias pois isso só acontece nesse script de um sistema que é bastante grande e acessa constantemente o banco de dados sem erros.
Discussão (3)
Carregando comentários...