Jump to content
Fórum Script Brasil
  • 0

Cadastro em php


securao
 Share

Question

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 to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...