Ir para conteúdo

POWERED BY:

Arquivado

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

Glaydison Silva

Problema ao fazer cadastro no Bd com array PHP

Recommended Posts

Olá pessoal, estou com problemas para fazer inserção no Banco de dados, o código está inserindo normalmente, o problema é que em alguns casos ele duplica a inserção, por exemplo inseri 27 registros (jogos do corinthians) com placar e artilharia de cada jogo, e 2 desses jogos foram duplicados, ou seja, foram inseridos duas vezes. Não sei se estou usando corretamente o while no código, ou se o problema é outro. Outra coisa, meu mouse é sem fio e está com a pilha fraca, as vezes um click fica bugado, e isso pode estar causando o erro, porém se esse for o problema preciso corrigir para que o código não aceite tal erro. Se alguém puder ajudar, desde já agradeço.

 

Segue trecho do código onde crio o formulário de envio com jogadores criados dinamicamente conforme outro cadastro feito anteriormente:

echo "<div id='gerencia'>
     <h1>Finalizar Jogo</h1>
     <p>Para contabilizar a artilharia, seus atletas devem estar cadastrados no Elenco da Equipe.</p>";
     $selecionar = "SELECT * FROM usuarios WHERE email = '$banco'";
     try{$read = $pdo->prepare($selecionar);$read->execute();} catch(PDOException $e){$e -> getMessage;}
     $lin = $read->fetch(PDO::FETCH_ASSOC);
     $id = $lin['id'];
     $idJogo = $atual[2];
     $pegaJogo = "SELECT * FROM agenda WHERE (id_usuario = '$id' && id = '$idJogo') LIMIT 1";
     try{$read2 = $pdo->prepare($pegaJogo);$read2->execute();} catch(PDOException $e){$e -> getMessage;}
     if($read2->rowCount() == 1){
          $linha = $read2->fetch(PDO::FETCH_ASSOC);
          echo "<div id='erro4' style='display: none;'></div>
          <form name='form_jogo' id='form_jogo' action='".$url_ass."/settings/Jogos.php' method='post' onsubmit='return validar_jogo();'>
               <fieldset>
                    <legend>Placar</legend>
                    <input type='hidden' name='id' value='".$linha['id']."'>
                    <input type='hidden' name='data' value='".$linha['data']."'>
                    <input type='hidden' name='horario' value='".$linha['horario']."'>
                    <input type='hidden' name='local' value='".$linha['local']."'>
                    <input type='hidden' name='equipe' value='".$linha['equipe']."'>
                    <input type='hidden' name='adversario' value='".$linha['adversario']."'>
                    <input type='hidden' name='id_usuario' value='".$linha['id_usuario']."'>
                    <div style='text-align:center; float: left; width:100%;'>
                         <span style='margin: 0 5px 0 0; font-family: Arial Black;'>".$linha['equipe']."</span>
                         <input id='placarEquipe' class='placar' type='text' name='placarEquipe' onkeypress='return SomenteNumero(event)'>
                         <span style='margin: 0 5px; font-family: Arial Black;'>X</span>
                         <input id='placarAdv' class='placar' type='text' name='placarAdv' onkeypress='return SomenteNumero(event)'>
                         <span style='margin: 0 0 0 5px; font-family: Arial Black;'>".$linha['adversario']."</span>
                    </div>
               </fieldset>
               <fieldset>
                    <legend>Artilharia</legend>";
                    $jogador = "SELECT * FROM elenco WHERE (id_usuario = '$id') ORDER BY funcao_atleta";
                    try{$read3 = $pdo->prepare($jogador);$read3->execute();} catch(PDOException $e){$e -> getMessage;}
                    while($res = $read3->fetch(PDO::FETCH_ASSOC)){
                         echo "<div style='margin: 2px 0; float=left; width:100%;'>
                              <input class='placar' type='text' name='jogador[]' maxlength='2' value=0 onkeypress='return SomenteNumero(event)'>
                              <span style='margin-left: 5px; font-family: Arial; '>".$res['nome_atleta']."</span>
                         </div>";
                    }
               echo "</fieldset>
               <input class='btn' type='submit' value='Salvar'>
          </form>";
     }else{
          echo "<p>Erro ao carregar jogo!</p>";
     }
echo "</div>";

Aqui o arquivo para inserção no BD:

<?php
header('Content-Type: text/html; charset=utf-8');
include("conexao.php");
include("CheckUpDb.php");
$pdo = conectar();
$url_ass = url_ass();
include "url_amigavel.php";

$golspro = $_POST['placarEquipe'];
$golscontra = $_POST['placarAdv'];
if($golspro > $golscontra){
     $resultado = 1;
     $pontos = 3;
}elseif($golspro < $golscontra){
     $resultado = 2;
     $pontos = 0;
}elseif($golspro == $golscontra){
     $resultado = 3;
     $pontos = 1;
}
$id = $_POST['id'];
$id_usuario = $_POST['id_usuario'];
$data = $_POST['data'];
$caldata = explode('-', $data);
$dataArt = $caldata[0];
$horario = $_POST['horario'];
$local = $_POST['local'];
$adversario = $_POST['adversario'];
$equipe = $_POST['equipe'];
$atleta = $_POST['jogador'];

$selecionar = "SELECT * FROM jogos WHERE (id_usuario = '$id_usuario && data = '$data')";
try{$readsel = $pdo->prepare($selecionar);$readsel->execute();} catch(PDOException $e){$e -> getMessage;}
if($readsel->rowCount() == 0){
     $inserir = $pdo->query("INSERT INTO jogos (id_usuario, golspro, golscontra, resultado, pontos, data, horario, local, adversario, equipe) VALUES ('$id_usuario', '$golspro', '$golscontra', '$resultado', '$pontos', '$data', '$horario', '$local', '$adversario', '$equipe')");
}

$i = 0;
$elenco = "SELECT * FROM elenco WHERE id_usuario = '$id_usuario' ORDER BY funcao_atleta";
try{$read = $pdo->prepare($elenco);$read->execute();} catch(PDOException $e){$e -> getMessage;}
$num = $read->rowCount();
while($linha = $read->fetch(PDO::FETCH_ASSOC)){
     $jog = $linha['nome_atleta'];
     $gols = $atleta[$i++];
     $art = "SELECT * FROM artilharia WHERE (jogador = '$jog' && id_usuario = '$id_usuario' && data = '$dataArt')";
     try{$read2 = $pdo->prepare($art);$read2->execute();} catch(PDOException $e){$e -> getMessage;}
     if($read2->rowCount() == 0):
          $insere = $pdo->query("INSERT INTO artilharia (id_usuario, jogador, gols, data) VALUES ('$id_usuario', '$jog', '$gols', '$dataArt')");
     else:
	  $res = $read2->fetch(PDO::FETCH_ASSOC);
	  $golant = $res['gols'];
	  $golsatual = $golant + $gols;
	  $insert = $pdo->query("UPDATE artilharia set gols = '$golsatual' WHERE (jogador = '$jog' && id_usuario = '$id_usuario' && data = '$dataArt')");
     endif;
}

if($inserir){
     $deletar = $pdo->query("DELETE FROM agenda WHERE id = '$id'");
     echo "
     <meta http-equiv='refresh' content='0; url=".$url_ass."/agenda/jogos-encerrados'/>
     <script type='text/javascript'>alert('Dados inseridos com sucesso!');</script>";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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