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

Cadastro em php


securao

Pergunta

Não estou conseguindo mandar para o banco de dados o id da especialidade que eu escolher no <select> ela sempre fica com 0 só está cadastrando o nome dela alguém poderia me ajudar por favor.

Obs. eu fiz o registro de alguns itens diretamente no banco para testar a listagem.

Banco de dados: bancoq

Tabela1: especialidades

          col1:id

          col2:esp_sigla

          col3:esp_nome

 

Tabela2:materia

          col1:id

          col2:id_esp

          col3:materia_nome

kkkk.png

<?php
     
    require 'database.php';
 
    if ( !empty($_POST)) {
        // keep track validation errors
        $materiaError = null;
         
        // keep track post values
        $materia = $_POST['materia'];
         
        // input de validação
        $valid = true;
        if (empty($materia)) {
            $materiaError = 'Por favor Entre com a Sigla da Especialidade';
            $valid = false;
        }
		
         
        // inserindo na DB
        if ($valid) {
            $pdo = Database::connect();
            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $sql = "INSERT INTO materias (materia) values(?)";
            $q = $pdo->prepare($sql);
            $q -> execute(array($materia,));
            Database::disconnect();
            header("Location: index.php");
        }
    }
?>

<!DOCTYPE html>
<html>
<head>
    <link   href="css/bootstrap.min.css" rel="stylesheet">
    <script src="js/bootstrap.min.js"></script>
</head>
 
<body>
    <div class="container">
     
                <div class="span10 offset1">
                    <div class="row">
                        <h3>Cadastrando Matéria</h3>
                    </div>
             
                    <form class="form-horizontal" action="create_m.php" method="post">
                      <div class="control-group <?php echo !empty($materiaError)?'error':'';?>">
                        <label class="control-label">Nome da Matéria:</label>
                        <div class="controls">
                            <input name="materia" type="text"  placeholder="Entre com o nome da matéria" value="<?php echo !empty($materia)?$materia:'';?>">
                            <?php if (!empty($materiaError)): ?>
                                <span class="help-inline"><?php echo $materiaError;?></span>
                            <?php endif; ?>
                        </div>
                      </div>
					  
					  <select name="especialidades" id="especialidades">
					  <option value="">Selecione uma especialidade</option>
					  <?php
						$pdo = Database::connect();
						$sql2 = 'SELECT * FROM especialidades';
						foreach ($pdo->query($sql2) as $row2) :
							echo '<option value="'.$row2['id'].'">'.$row2['esp_nome'].'</option>';
						endforeach;
					?>
					  </select>
					  
                      <div class="form-actions">
                          <button type="submit" class="btn btn-success">Create</button>
                          <a class="btn" href="index.php">Voltar</a>
                        </div>
						
                    </form>
                </div>
                 
    </div> <!-- /container -->
  </body>
</html>
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Oi Securao. Claro. Veja abaixo.
Você tem esse comando:


<select name="especialidades" id="especialidades">
       <option value="">Selecione uma especialidade</option>
       <?php
      $pdo = Database::connect();
      $sql2 = 'SELECT * FROM especialidades';
      foreach ($pdo->query($sql2) as $row2) :
       echo '<option value="'.$row2['id'].'">'.$row2['esp_nome'].'</option>';
      endforeach;
     ?>
       </select>

Tente usar o comando abaixo dessa forma:

 // inserindo na DB
        if ($valid) {
        $pdo = Database::connect();
        $especialidade = $_POST['especialidades']; // Aqui que vc pega o id da especialidade
            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $sql = "INSERT INTO materias (materia) values(?)";
            $q = $pdo->prepare($sql);
            $q -> execute(array($materia,));
            Database::disconnect();
            header("Location: index.php");
        }

 

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
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...