Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lucasgs13

Guardar valor de um campo de uma tabela em uma variável

Recommended Posts

Boa tarde! Estou fazendo um sistema de cadastro de usuários utilizando PHP e Mysql, para um projeto de conclusão de curso e estou com dificuldades, já pesquisei em vários lugares mas não achei nada.

Segue o MER
LJ5BloC.jpg
O formulário de cadastro possui apenas os campos nome, ---o, estado e cidade. O código que eu fiz está cadastrando os campos nome e ---o na tabela tb_usuario e as tabelas tb_estados e tb_cidades estão povoadas com todos os estados e cidades do Brasil.

Segue o código cadastro.php

<!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>Cadastro de Usuario</title>
</head>
<body>
<?php

ini_set( 'display_errors', true );
error_reporting( E_ALL );

include "classes/Conexao.class.php";
include "classes/Usuario.class.php";

if (isset($_POST["btnInserir"]))
{
	//echo "Foi clicado no botão inserir"
	//Instanciando objeto do tipo usuário
	$u = new Usuario ();
	
	$cod_cidade=0;

	$u -> setId (0);
	$u -> setNome ($_POST["txtNome"]);
	$u -> set---o ($_POST["rdb---o"]);

	//Instanciando um objeto do tipo conexão
	$c = new Conexao ();
	
	//verificando a cidade e o estado para o cod_cidade
	$comandoSql="select id_cidade from tb_cidades where nome='".$_POST["txtCidade"]."' && uf='".$_POST["txtEstado"]."'";
	$cod_cidade=$c -> criarConsulta($comandoSql);
	$u -> setCidadeEstado ($cod_cidade);


	//Criando o comando SQL
	$comandoSql="insert into tb_usuario(nome, ---o, cod_cidade) values('".$u -> getNome()."','".$u -> get---o()."','".$u -> getCidadeEstado()."');";
	
	//Realizando a inclusão
	
	$c -> criarConsulta($comandoSql);
}
?>
<h2>Cadastrar</h2>
Digite os seus dados pessoais abaixo:<br /><br />
<form name="form1" id="form1" method="post" action="">
Nome: <input type="text" name="txtNome" id="txtNome" required><br /><br />
---o: <input type="radio" value="Masculino" name="rdb---o" id="rdb---o_1">Masculino <input type="radio" value="Feminino" name="rdb---o" id="rdb---o_2">Feminino<br /><br />
Estado: <input type="text" name="txtEstado"><br /><br />
Cidade: <input type="text" name="txtCidade"><br /><br />
<input type="submit" value="Cadastrar-se" name="btnInserir"><br /><br />
</form>
</body>
</html>

Segue o código Conexao.class.php

[inline][/inline]

<?php

class Conexao
	{
       //atributos privados da classe que terao set e get	 
	   private $local, $user, $pass, $banco;
	   
	   //atributos publicos da classe que nao precisam de set e get
	   public $con, $result, $comandoSql;
	   
	   
	   //metodo construtor que determina valores para os atributos privados
	   
	   function __construct()
	   {
		 $this->local="localhost";
		 $this->user="root";
		 $this->pass="";
		 $this->banco="bd_sistema";
	   }
	   
	   //metodos set e get para os atributos privados
	   
	   public function setLocal($novoLocal)
	   {
		$this->local= $novoLocal;
	   }
	   public function getLocal()
	   {
		return $this->local;
	   }
	   
	   public function setUser($novoUser)
	   {
		  $this->user= $novoUser;
	   }
	   public function getUser()
	   {
		  return $this->user;
	   }
	   
	   public function setPass($novaPass)
	   {
		   $this->pass= $novaPass;
	   }
	   
	   public function getPass()
	   {
		    return $this->pass;
	   }
	   public function setBanco($novoBanco)
	   {
		  $this->banco= $novoBanco;
	   }
	   public function getBanco()
	   {
		  return $this->banco;
	   }
	   
	   //funcao conectarBd()	   
	  public function conectarBd()
	  {
	   $this->con=@mysql_pconnect($this->getLocal(), $this->getUser(), $this->getPass());
	   
	   if(!$this->con)
	   {
		   echo "Problemas ao conectar o banco de dados";
		   die();
	   }
	   else
	   {
			if(!mysql_select_db($this->getBanco(), $this->con))   
			{
				echo "Problemas ao selecionar o banco de dados";
				die();	
			}
	   }
	  } //fim da function conectarBd()
		
	// funcao criarConsulta() - responsavel por executar um comando sql passado como parametro
	
	public function criarConsulta($sql)
	{
	    $this->conectarBd();
		$this->comandoSql=$sql;
		
		//$result= mysql_query($comandoSql,$con)
		if($this->result= mysql_query($this->comandoSql, $this->con))
		{
			return $this-> result;
			$this->desconectarBd();	
		}
		else
		{
			echo "Não foi possivel realizar comando sql! Erro: ";
			die(mysql_error());
			$this->desconectarBd();
		}
	}  //fim da function criarConsulta()
	
	//funcao desconectarBd() - responsavel por  finalizar uma conexao
	public function desconectarBd()
	{
		//mysql_close ($con)
		return mysql_close($this->con);
		echo "Desconexao ok";
	}  //fim da function desconectarBd()
}

?>


Segue o codigo Usuario.class.php

<!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>Classe Usuario</title>
</head>
<body>

<?php

	class Usuario
	{
		//atributos da classe usuario
		private $id, $nome, $---o, $cidade_estado;

		//metodos ou funcoes
		public function setId($novoId)
		{
			$this-> id = $novoId;
		}
		public function getId()
		{
			return $this-> id;
		}
		public function setNome($novoNome)
		{
			$this-> nome = $novoNome;
		}
		public function getNome()
		{
			return $this-> nome;
		}
		public function set---o($novo---o)
		{
			$this-> ---o = $novo---o;
		}
		public function get---o()
		{
			return $this-> ---o;
		}
		public function setCidadeEstado($novoCidadeEstado)
		{
			$this-> cidade_estado = $novoCidadeEstado;
		}
		public function getCidadeEstado()
		{
			return $this-> cidade_estado;
		}
	}//fim da classe Usuario

?>

</body>
</html>

O problema é que eu não estou conseguindo obter o id_cidade para preencher o cod_cidade. Não sei se a lógica está correta, mas na hora de inserir no campo cod_cidade da conflito de chave estrangeira, então a variável cod_cidade não deve estar pegando o id_cidade e é isso que estou tentando fazer. Conto com vocês!

Compartilhar este post


Link para o post
Compartilhar em outros sites

rsrs... amigo, não acha que teu código ta um pouco complexo pra algo tão simples? é como querer matar um rato com uma bazuca, deixa pra usar os objetos e classes quando realmente precisar se não vc vai ficar batendo cabeça sem necessidade...

 

pelo que eu entendi do teu problema dava pra tu fazer tudo direto no sql tipo INSERT INTO `tabelas` (`nome`,`id_relacionado`) VALUES ('nome-do-individo',(SELECT `id` FROM `tabela-relacionada` WHEREsrsrsrs)), ou faz uma consulta simples joga em uma variável simples e depois passa ela no sql...

 

mais é só minha opinião, se vc prefere assim... confere direitinho as instancias da tua classe que da certo tb..

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.