Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) direcionar PHP para formulário HTML


PhoenixWings

Pergunta

Boa tarde a todos. Estou com o seguinte trecho de código:

$operacao = $_POST["operacao"];
include "conecta_mysqli_administrativo.inc";
if($operacao == "listar"){
  $resultado = mysqli_query($conexao, "SELECT * FROM siglas");
  $linhas = mysqli_num_rows($resultado);
  
  for($i = 0; $i < $linhas; $i++)
  {
    $registro = mysqli_fetch_row($resultado);
    echo "Sigla: $registro[0]<br>";
  }
 }
if($operacao == "cadastrar")
     "<html> 
?>

E gostaria de saber se é possível abrir uma página com um formulário HTML a partir do "if" de cadastramento. Se for possível, como eu faria para retornar os dados inseridos neste formulário para este arquivo .php? Obrigado pela ajuda.

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

gente continuando, eu codifiquei esse código de formulário:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Cadastramento</title>
</head>
<body>
   <pre>
    <form action="administra.php" method="POST"> 
     <input type="hidden" name="operacao" value="cadastrar" />
        Sigla: <input type="text" name="inseresigla" size="10" maxlength="2"/>
        
        Senha: <input type="password" name="inseresenha" size="10" maxlength="10"/>
    
                <input type="submit" value="Enviar" name="enviar" />
    </form> 
   </pre> 
</body>
</html>
e este de PHP:
<?php

$operacao = $_POST["operacao"];
include "conecta_mysqli_administrativo.inc";
if($operacao == "listar"){
  $resultado = mysqli_query($conexao, "SELECT sigla FROM siglas");
  $linhas = mysqli_num_rows($resultado);
  
  for($i = 0; $i < $linhas; $i++)
  {
    $registro = mysqli_fetch_row($resultado);
    echo "Sigla: $registro[0]<br>";
  }
 }
else if($operacao == "cadastrar")
{
   
   $regSigla = $_POST["inseresigla"];
   $regSenha = $_POST["inseresenha"];
   $erro = 0;
   if(empty($regSigla))
   {
     echo "Por favor, insira a sigla."; 
     $erro = 1;
   }
   else if(empty($regSenha))
   {
      echo "Por favor, insira a senha.";
      $erro = 1;   
   }
   
   // se não houver nenhum erro na inserção de dados, insere estes na tabela
   else if($erro == 0)
   {
       $resultado =  mysqli_query($conexao, "INSERT INTO siglas VALUES ('$regSigla', '$regSenha')");
       $linhas = mysqli_affected_rows($conexao);
       echo "Numero de linhas afetadas: $linhas<br>";
   }
   
}
?>

Eu gostaria de fazer uma verificação agora: este programa insere siglas e suas respectivas senhas num BD eu gostaria de verificar se certa sigla já foi inserida no BD, ou seja, inserir uma nova sigla apenas se ela já não tiver sido inserida ainda.

Editado por PhoenixWings
Link para o comentário
Compartilhar em outros sites

  • 0
Vou tentar te ajudar, espera um pouco!

Eu achei que tinha conseguido, tive que modificar o código, agora tá dando um problema de lógica:

<?php
    
    $operacao = $_POST["operacao"];
    include "conecta_mysqli_administrativo.inc";
    
    $resultado = mysqli_query($conexao, "SELECT sigla FROM siglas");
    $linhas = mysqli_num_rows($resultado);
    
    if($operacao == "listar"){
      
      for($i = 0; $i < $linhas; $i++)
      {
        $registro = mysqli_fetch_row($resultado);
        echo "Sigla: $registro[0]<br>";
      }
     }
    else if($operacao == "cadastrar")
    {
       $registro = mysqli_fetch_row($resultado);  // necessário para saber se a sigla já foi inserida na tabela
       $regSigla = $_POST["inseresigla"];
       $regSenha = $_POST["inseresenha"];
       $erro = 0;
       if(empty($regSigla))
       {
         echo "Por favor, insira a sigla."; 
         $erro = 1;
       }
       else if(empty($regSenha))
       {
          echo "Por favor, insira a senha.";
          $erro = 1;   
       }
       
       for($i = 0; $i < $linhas; $i++)
       {
         
            // o problema de lógica está nessa linha!
           // erro: Notice: Undefined offset: 1 in C:\Arquivos de programas\EasyPHP-5.3.2i\www\PaginaAdministrativaWeb\administra.php on line 36
            if($registro[$i] == $regSigla) 
         {
          echo "Esta sigla já foi inserida.";
          $erro = 1;
         }
       }
     }
       // se não houver nenhum erro na inserção de dados, insere estes na tabela
       else if($erro == 0)
       {
           $resultado =  mysqli_query($conexao, "INSERT INTO siglas VALUES ('$regSigla', '$regSenha')");
           $linhas = mysqli_affected_rows($conexao);
           echo "Numero de linhas afetadas: $linhas<br>";
       }
     ?>

Editado por PhoenixWings
Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado a todos pela atenção, eu resolvi o problema. Neste trecho:

if($registro[$i] == $regSigla)
Eu deveria ter feito na verdade:
if($registro[0] == $regSigla)

afinal, eu estava tentando acessar as siglas de cada linha e o índice correspondente às siglas era o índice 0. O for só serviu para que eu pudesse obter cada linha para verificação a cada loop.

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...