Guest User

Código exemplo

a guest
Aug 21st, 2018
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 7.76 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3. <?php
  4. include("bd.php"); //Conectando com o MySQL
  5. /* RECEBENDO OS DADOS PREENCHIDOS DO FORMULÁRIO!
  6. OBS: Para fins didáticos, todas as variavés utilizarão o prefixo "rcb_" referente a "recebe valor de" */
  7. // antes de sair atribuindo valores, você precisa testar se eles existem no $_POST, isso se de fato existir um $_POST!
  8. // então a variável que receberá nossa mensagem de retorno já começará vazia:
  9. $retorno = "";
  10. // além disso, aquelas variáveis que são impressas no formulário também precisam ter seus valores padrões declarados fora do escopo das condicionais:
  11. $tipo = $resultado = "?";
  12. // e então verificaremos se há dados no $_POST:
  13. if(isset($_POST) && !empty($_POST)) {
  14.     // para simplificar o estudo, vou manter esse trecho como está, mas o ideal é verificar campo a campo se o índice existe no array. Irei comentar mais abaixo como eu faria esse trecho e depois você estuda
  15.     $rcb_campeonato = $_POST ["campeonato"];    // Captura o (select) com nome: "campeonato" referente ao "id_campeonato"
  16.     $rcb_data_atual = $_POST ["data-atual"];    // Traz (input date) com nome: "data-atual"
  17.     $rcb_mandante   = $_POST ["mandante"];      // Captura o participante de nome: "mandante"
  18.     $rcb_mscore = $_POST ["mscore"];            // Recebe número entre 0 e 9 de: "mscore"
  19.     $rcb_vscore = $_POST ["vscore"];            // Recebe número entre 0 e 9 de: "vscore"
  20.     $rcb_visitante  = $_POST ["visitante"];     // Captura o participante de nome: "mandante"
  21.     $rcb_tipo   = $_POST ["tipo"];              // Campo oculto de valores 0=Empate, 1=Vitória do mandante ou 2=Visitante
  22.     $rcb_resultado = $_POST ["resultado"];      // Deve gravar o ID vencedor (mandante ou visitante)
  23.     $rcb_status = $_POST ["status"];            // Se tudo estiver OK, grava sempre o campo com valor 1.
  24.  
  25.     /* Como eu faria o trecho acima:
  26.         $variaveis_a_receber = array("campeonato", "data-atual", "mandante", "mscore", "vscore", "visitante", "tipo", "resultado", "status");
  27.         // acima eu listo em um array todos os campos que eu espero receber, irei varrer este array para popular os campos usando variáveis variáveis do PHP (sim, variável que varia, hehe)
  28.         foreach($variaveis_a_receber as $rcb) {
  29.             ${"rcb_".str_replace("-", "_", $rcb)} = isset($_POST[$rcb]) ? $_POST[$rcb] : NULL;
  30.         }
  31.         // dentro do loop utilizei uma equação ternária, que é uma operação condicional de atribuição de valores, respeitando a seguinte sintaxe:
  32.         $variavel = <condição true/false> ? <valor se true> : <valor se false>;
  33.         // que é o mesmo que fazer:
  34.         if(<condição true/false>) {
  35.             $variavel = <valor se true>;
  36.         } else {
  37.             $variavel = <valor se false>;
  38.         }
  39.  
  40.         // e sobre a $variavel em questão é uma variável variável originada da string "rcb_" + o tratamento da string do array, gerando os valores:
  41.         "rcb_campeonato", "rcb_data_atual", "rcb_mandante" ... e por adiante.
  42.         ${"rcb_campeonato"} = $rcb_campeonato
  43.     */
  44.     // VALIDAÇÕES: só há, de fato, uma validação que restringe o formulário, que é essa:
  45.     if($rcb_visitante == $rcb_mandante) {
  46.         $retorno = "O mandante não pode ser igual ao visitante.";
  47.     } else { // então podemos seguramente encapsular o resultado com o else.
  48.         $vencedor = $empate = false;
  49.         if($rcb_mscore == $rcb_vscore) {
  50.             $empate = true;
  51.             $tipo = "0";
  52.         } elseif($rcb_mscore > $rcb_vscore) {
  53.             $vencedor = $resultado = $rcb_mandante;
  54.             $tipo = "1";
  55.         } else {
  56.             $vencedor = $resultado = $rcb_visitante;
  57.             $tipo = "2";
  58.         }
  59.         //Como gravar esses dados no banco de dados?
  60.         // sobre a parte de banco de dados, infelizmente há informação suficiente sobre o que te passaram no exercício. Eu vi que tem um include "bd.php" ali em cima, o que tem nesse arquivo?
  61.  
  62.         //Como referenciar a tabela do banco de dados?
  63.  
  64.         $query = "INSERT INTO `tbl_jogos` ( `Null` , `id_campeonato`, `dt_partida` , `mandante` , `visitante` , `mscore` , `vscore` , `tipo` , `resultado`, `status`)
  65. VALUES ('$rcb_campeonato', '$rcb_data_atual', '$rcb_mandante', '$rcb_visitante', '$rcb_mscore', '$rcb_vscore', '$rcb_tipo', '$rcb_resultado', '$rcb_status')";
  66.  
  67.         $retorno = "Seu resultado foi gravado com sucesso!";
  68.     }
  69. }
  70. ?>
  71. <head>
  72.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  73.  
  74.     <title>Registro de resultado dos jogos</title>
  75.  
  76.     <link type="text/css" rel="stylesheet" media="screen" href="estilos.css" />
  77. </head>
  78. <body>
  79.     <div id="site">
  80.         <form method="post" id="insere_jgfeito" align="center" enctype="multipart/form-data"> <!-- ÍNICIO DO USUÁRIO PREENCHENDO FORMULÁRIO -->
  81.  
  82.             <td>
  83.             <tr>
  84.                 <span><strong>Inserir Resultados<strong></span>
  85.             </br>
  86.             </tr>
  87.             <?php if($retorno != "") { ?>
  88.             <tr>
  89.                 <th>
  90.                     <?=$retorno?>
  91.                 </th>
  92.             </tr>
  93.             <?php } ?>
  94.             <tr>
  95.             <td>
  96. <select required name="campeonato"/>
  97.     <option value="" disabled="disabled" selected="selected">Campeonato</option>
  98.     <?php
  99.         $cst_campeonato = mysql_query("SELECT `id`, `campeonato` FROM `tbl_campeonatos` WHERE `status` = 1 ORDER BY `id` ASC");
  100.             while($campeonatos = mysql_fetch_array($cst_campeonato)){ ?>
  101.     <option value="<?php echo $campeonatos["id"];?>"><tr><?php echo $campeonatos["campeonato"];?></tr></option>
  102.     <?php } ?>
  103. <select>            </td></br>
  104.             <td>
  105.             <label for="data-atual">Realizado em...</label>
  106.             <input type="date" name="data-atual" id="data-atual" value="<?=date('d/m/Y')?>" required>
  107.             </td>
  108.             </tr>
  109.             </td></br>
  110.             <tr>
  111.             <td>
  112.             <select required name="mandante"/>
  113.                 <option value="" disabled="disabled" selected="selected">Mandante</option>
  114.                 <?php
  115.                     $cst_competidor = mysql_query("SELECT `tbl_jogadores`.`tecnico` AS tecnico, `tbl_competidor`.`nome` AS nome FROM `tbl_competidor` INNER JOIN `tbl_jogadores` ON `tbl_competidor`.`id_competidor` = `tbl_jogadores`.`tecnico` WHERE `tbl_competidor`.`status` = 1 GROUP BY `tbl_jogadores`.`tecnico` ORDER BY `tbl_competidor`.`nome` ASC");
  116.                     while($tecnicos = mysql_fetch_array($cst_competidor)){ ?>
  117.                 <option value="<?php echo $tecnicos["tecnico"];?>"><tr><?php echo $tecnicos["nome"];?></tr></option>
  118.                 <?php } ?>
  119.             <select>
  120.             <input type="number" min="0" max="9" name="mscore" required="required">
  121.             </td>
  122.             <td>
  123.             <input type="number" min="0" max="9" name="vscore" required="required">
  124.             <select required name="visitante"/>
  125.                 <option value="" disabled="disabled" selected="selected">Visitante</option>
  126.                 <?php
  127.                     $cst_competidor = mysql_query("SELECT `tbl_jogadores`.`tecnico` AS tecnico, `tbl_competidor`.`nome` AS nome FROM `tbl_competidor` INNER JOIN `tbl_jogadores` ON `tbl_competidor`.`id_competidor` = `tbl_jogadores`.`tecnico` WHERE `tbl_competidor`.`status` = 1 GROUP BY `tbl_jogadores`.`tecnico` ORDER BY `tbl_competidor`.`nome` ASC");
  128.                     while($tecnicos = mysql_fetch_array($cst_competidor)){ ?>
  129.                 <option value="<?php echo $tecnicos["tecnico"];?>"><tr><?php echo $tecnicos["nome"];?></tr></option>
  130.                 <?php } ?>
  131.             <select>
  132.             </td>
  133.             </tr>  
  134.             <input type="hidden" value="<?=$tipo?>" name="tipo"/>
  135.             <input type="hidden" value="<?=$resultado?>" name="resultado"/>
  136.             <input type="hidden" value="1" name="status"/>
  137.             <input type="hidden" name="acao" value="enviado" />
  138.             <button type="submit">Gravar</button>
  139.         </form> <!-- FIM DO FORMULÁRIO -->
  140.     </div>
  141. </body>
  142. </html>
Advertisement
Add Comment
Please, Sign In to add comment