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
<?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>
Pergunta
securao
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
<?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
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.