Jump to content
vinihhylian0103

Gravar Dados de um Campo Select no Banco de Dados!

Recommended Posts

Boa noite, eu tenho um campo no meu cadastro para o usuário selecionar seu curso, que seria esse:

 

<select name="curso" type="text" required=".$this->fields["cursos"].">
       <option value="Informática">Informática</option>
       <option value="ADM">Administração</option>
       <option value="Edificações">Edificações</option> />

e eu gostaria de saber como gravar essa escolha no banco de dados, segue o código de inserrir

 

<?php

 if(!$conect=mysqli_connect('localhost','root','','cadastros')) 
 	die ('erro ao conectar');
	
#Recolhendo os dados do formulário
	$nome=mysqli_real_escape_string($conect, $_POST['nome']);
	$sobrenome=mysqli_real_escape_string($conect, $_POST['sobrenome']);
	$data=mysqli_real_escape_string($conect, $_POST['data_nasc']);
	$rm=mysqli_real_escape_string($conect, $_POST['rm']);
	$curso=mysqli_real_escape_string($conect, $_POST['curso']);
	$email=mysqli_real_escape_string($conect, $_POST['email']);
	$senha=mysqli_real_escape_string($conect, $_POST['senha']);

# Verificando apenas um campo, no caso dado1.
	$sql = $conect->query("SELECT * FROM usuarios WHERE email='$email'");
		if(mysqli_num_rows($sql) > 0){
			echo "Este email já foi cadastrado!";
		exit(); 
	} 
		else {
 		
 		if(!$conect->query("INSERT INTO usuarios(nome, sobrenome, data_nasc, rm, curso, email, senha) 
 			VALUES('$nome','$sobrenome','$data','$rm','$curso','$email','$senha')")) 
 		
 		die ('Os dados não foram inseridos');

 		echo "<script type='text/javascript'>alert('Cadastro Concluído!');</script>";
 		header('Location: index.html');
}

Muito obrigado desde já!

Share this post


Link to post
Share on other sites

Segue exemplo para compreensão:

 

1 - Tabelas a serem utilizadas

 

SQL

CREATE TABLE usuarios (
	idUsuario INT NOT NULL AUTO_INCREMENT,
	nome VARCHAR(100) NOT NULL,
	PRIMARY KEY(idUsuario)
);

CREATE TABLE cursos (
	idCurso INT NOT NULL AUTO_INCREMENT,
	nome VARCHAR(50) NOT NULL,
	PRIMARY KEY(idCurso)
);

CREATE TABLE usuarios_cursos (
	idMatricula INT NOT NULL AUTO_INCREMENT,
	idUsuario INT NOT NULL,
	idCurso INT NOT NULL,
	dataMatricula DATE,
	PRIMARY KEY(idMatricula),
	FOREIGN KEY (idUsuario) REFERENCES usuarios (idUsuario),
	FOREIGN KEY (idCurso) REFERENCES cursos (idCurso)
);

 

"LIGAÇÃO DAS TABELAS"

image.png.50f7f802e9f44e433ae6dc57b3209c16.png

 

2 - Implementação

Pós criação das tabelas, liste os cursos presentes no banco de dados

de tal modo que siga o exemplo abaixo!

# Repare que no atributo value="" você deverá inserir 
# o respectivo ID do curso...
<select name="curso">
	<option value="1">Informática</option>
	<option value="2">Administração</option>
	<option value="3">Edificações</option>
</select>

 

Assim, quando o usuário escolher um curso, você registra na tabela 

usuarios_cursos ID do usuário em questão; o ID do curso selecionado;

e a data atual.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By EstilloWeb
      Está ocorrendo um erro em meu comando MySQL na ordenação dos resultados. O código é o seguinte:
      $sql_imos4 = "Select DISTINCT imovel FROM propostas ORDER BY id DESC"; $exe_imos4 = mysqli_query($conexao, $sql_imos4); O objetivo é listar uma única vez um imóvel com proposta, mesmo que haja dois ou mais registros, sempre ordenado mais recente. O que está ocorrendo quando o imóvel tem mais de uma proposta cadastrada, a ordenação está sendo feita pelo ID da proposta mais antiga.
      Exemplo:
      imóvel ref. 4528 tem duas propostas, sendo que a mais recente tem o ID 235 porém aparece na listagem abaixo do imóvel ref. 4325, que tem uma só proposta e ID 230.
      O resultado deveria estar invertido neste caso.
      Onde pode estar o erro? Agradeço a ajuda.
    • By tii3030
      Olá, gostaria de saber qual a melhor maneira de selecionar e verificar a senha hash(senha) em um banco de dados e comparar com a senha inserida pelo usuário em um formulário de login. É mais adequado armazenar no BD o salt ? No exemplo abaixo eu criei o hash da senha antes de selecionar no banco:
      <?php include('conf.php'); $email = 'lala@123.com'; $senha = 'lala.123'; $custo = '08'; $salt = 'Cf1f11ePArKlBJomM0F6aJ'; $hash = crypt($senha, '$2a$' . $custo . '$' . $salt . '$'); $query_select = "SELECT email, password FROM usuarios WHERE email = '$email' AND password = '$hash'"; $select = mysqli_query($conexao,$query_select); if (mysqli_num_rows($select) == 1) { echo "Login Permitido"; } else { echo "Login ou senha invalidos"; } ?> Já neste exemplo eu selecionei o hash no banco para depois comparar com a senha inserida no formulário utilizando o password_verify():
      <?php #----------------- INCLUDING FILE --> "conf.php" include('conf.php'); if (isset($_POST['submit'])) { $email = mysqli_real_escape_string($conexao, $_POST['email']); $password = mysqli_real_escape_string($conexao, $_POST['password']); $query_select_email = "SELECT email FROM usuarios WHERE email = '$email'"; $select_email = mysqli_query($conexao,$query_select_email); $query_select_password = "SELECT password FROM usuarios"; $select_password = mysqli_query($conexao,$query_select_password); while($array = mysqli_fetch_array($select_password)) { $logarray = $array['password']; if (password_verify($password, $logarray) && mysqli_num_rows($select_email) == 1) { echo "Login permitido"; } } } ?> Aceito qualquer dica relacionado a segurança e para melhorar o código, desde já agradeço.
    • By tii3030
      Olá pessoal, desenvolvi um pequeno código em PHP com a função de verificar e validar usuário e senha de um formulário, juntamente com o meu banco de dados MySql.
      Gostaria de saber como aprimorar o meu código para torna-lo mais seguro e mais próximo de algo "profissional". Lembrando que minha senha no banco está criptografada (PASSWORD_BCRYPT).
       
      <?php
          #----------------- INCLUDING FILE --> "conf.php"
          include('conf.php');
              if (isset($_POST['submit'])) {
             
      #--------------------------------INPUTS ---------------------------------------------#
                  $email = mysqli_real_escape_string($conexao, $_POST['email']);
                  $password = mysqli_real_escape_string($conexao, $_POST['password']);
      #-----------------------#----------------------#-----------------_#-------------------#
                  $query_select_email = "SELECT email FROM usuarios WHERE email = '$email'";
                  $select_email = mysqli_query($conexao,$query_select_email);
                  $query_select_password = "SELECT password FROM usuarios";
                  $select_password = mysqli_query($conexao,$query_select_password);
                  while($array = mysqli_fetch_array($select_password)) {
                  $logarray = $array['password'];
                  
                      if (password_verify($password, $logarray)) {
                          if (mysqli_num_rows($select_email) == 1) {
                              
                          $_SESSION['email'] = $email;
                          header('location: XXX.html');
                          exit();
                          }
                      }
                      else {
                          echo "Loguin ou senha incorretos";
                      }
                  $logarray = '0';
                  }
              }
      ?>
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.