Jump to content


Photo

Puxar Dados Do Banco Mysql E Jogar Em Um Combobox


  • Faça o login para participar
12 replies to this topic

#1 trizzo

trizzo

    Turista

  • Usuários
  • 33 posts
  • Sexo:Não informado

Posted 15/09/2008, 14:56

Boa tarde pessoal,

Como faço para puxar dados do meu banco de dados MYSQL e jogá-los em um combobox?

Eu tenho duas tabelas uma ALUNO e uma TURMA. Quero puxar as turmas cadastradas na tabela TURMAS e joga-las em um combobox no Cadastro de Aluno.


Ex: Tela Cadastro de Aluno

Nome:
Turma: Combobox (TURMA 1, TURMA 2, TURMA 3)
RA Aluno:
Endereço


Banco de dados Tabela Turma: Nome das Turmas cadastradas: TURMA 1, TURMA 2, TURMA 3.


Obrigado.

#2 Maykel Esser

Maykel Esser

    Super Veterano

  • Usuários
  • 1536 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 15/09/2008, 15:05

[codebox]
<?
sql = "SELECT * FROM turma";
con = mysql_query(sql)
?>

<select name="cmbTurma" id="cmbTurma">
<option value="0" selected>Selecione</option>";
<?
if (mysql_num_rows($con) > 0) {
while($rs = mysql_fetch_object($con)) {
$div .= "<option value=\"".$rs->id."">".$rs->turma."</option>";
}
}
?>
[/codebox]

Isso?

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens! add.png


#3 trizzo

trizzo

    Turista

  • Usuários
  • 33 posts
  • Sexo:Não informado

Posted 15/09/2008, 15:51

ta dando esse erro:

Parse error: syntax error, unexpected '<' in C:\xampp\htdocs\SistemaAcademico\cadastro.php on line 87

Linha 87:

$div .= "<option value=\"".$rs->id."">".$rs->turma."</option>";

fiz assim agora e não deu erro:

$div .= "<option value=\"".$rs->id."">"".$rs->turma."</option>";

mas não entendi mto bem o codigo que vc me passou, poderia me explicar resumidamente, por favor?

$sql1 = "SELECT id_turma FROM turma";
$con = mysql_query(sql1);

<select name="id_turma" id="turma_id_turma">
<option selected value="0">Selecione</option>;

if (mysql_num_rows($con) > 0) {
while($rs = mysql_fetch_object($con)) {
$div .= "<option value=\"".$rs->id."">"".$rs->turma."</option>";
}
}



Alguma coisa entre essas linhas está errado:
<select name="id_turma" id="turma_id_turma">
<option selected value="0">Selecione</option>;

erro: Parse error: syntax error, unexpected '<' in C:\xampp\htdocs\SistemaAcademico\cadastro_aluno.php on line 21

vou colcar denovo aqui
ignore o que está acima

#4 Maykel Esser

Maykel Esser

    Super Veterano

  • Usuários
  • 1536 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 15/09/2008, 15:52

claro que explico, heh, peguei o modelo pronto de um que eu tenho aqui, mas esqueci de adaptar uns trecos pro seu exemplo...

Primeiro fazemos o SELECT, onde vamos recuperar todo o conteúdo das turmas... ($sql1 = "SELECT id_turma FROM turma";)
Em seguida, executamos a consulta que criamos em seguida ($con = mysql_query(sql1);)

Isso aí vai no PHP... no formulário de cadastro, você vai criar um select para puxar os dados do SELECT que fizemos acima, certo?

[codebox]
<select name="id_turma" id="turma_id_turma">
<option selected value="0">Selecione sua turma</option>
<?
if (mysql_num_rows($con) > 0) { // Se o numero de linhas que retornar do banco for maior que 0, ou seja, se tiver coisa no banco, então...
while($rs = mysql_fetch_object($con)) { // vai pegar esse objeto e ir duplicando! ?>
<option value="<? echo $rs->id; ?>"><? echo $rs->turma; ?></option>
<?
}//termina while
}//termina if
?>
</select>
[/codebox]

Entendeu agora amigo?

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens! add.png


#5 trizzo

trizzo

    Turista

  • Usuários
  • 33 posts
  • Sexo:Não informado

Posted 15/09/2008, 15:52

Código:

<?
$sql = "SELECT * FROM turma";
$con = mysql_query(sql)
?>

<select name="cmbTurma" id="cmbTurma"><option value="0" selected>Selecione</option>";

<?
if (mysql_num_rows($con) > 0) {
while($rs = mysql_fetch_object($con))
{
$div .= "<option value=\"".$rs->id."">".$rs->turma."</option>";
}
}
?>



Erro:
Parse error: syntax error, unexpected '<' in C:\xampp\htdocs\SistemaAcademico\cadastro_aluno.php on line 42


Linha 42:
$div .= "<option value=\"".$rs->id."">".$rs->turma."</option>";


#6 Maykel Esser

Maykel Esser

    Super Veterano

  • Usuários
  • 1536 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 15/09/2008, 16:01

vc leu meu post acima desse cara?

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens! add.png


#7 trizzo

trizzo

    Turista

  • Usuários
  • 33 posts
  • Sexo:Não informado

Posted 15/09/2008, 16:02

Fiz denovo mas agora ele não ta puxando nada:

<?

  $connect=mysql_connect("localhost","root","") or die("Connection Failure to Database");
  //echo "Conectado ao servidor de Banco de Dados!<br><br>";
  mysql_select_db("cadastro",$connect) or die ("Não é possível selecionar o banco de dados");
  //echo "O Banco de Dados " . "cadastro" . " foi selecionado";

$sql1 = "SELECT id_turma FROM turma";
$con = mysql_query(sql1)
?>

<select name="id_turma" id="turma_id_turma">
<option selected value="0">Selecione sua turma</option>
<?
if (mysql_num_rows($con) > 0) { // Se o numero de linhas que retornar do banco for maior que 0, ou seja, se tiver coisa no banco, então...
while($rs = mysql_fetch_object($con)) { // vai pegar esse objeto e ir duplicando!
?>
<option value="<? echo $rs->id; ?>">
<? echo $rs->turma; ?></option>
<?
}//termina while
}//termina if
?>


#8 Maykel Esser

Maykel Esser

    Super Veterano

  • Usuários
  • 1536 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 15/09/2008, 16:09

mande imprimir a SQL e veja se está trazendo algo

echo $sql1;

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens! add.png


#9 trizzo

trizzo

    Turista

  • Usuários
  • 33 posts
  • Sexo:Não informado

Posted 15/09/2008, 16:38

<?
  $connect=mysql_connect("localhost","root","") or die("Connection Failure to Database");
  //echo "Conectado ao servidor de Banco de Dados!<br><br>";
  mysql_select_db("cadastro",$connect) or die ("Não é possível selecionar o banco de dados");
  //echo "O Banco de Dados " . "cadastro" . " foi selecionado";

$sql1 = "SELECT id_turma FROM turma";
$con = mysql_query(sql1);

echo $sql1;

if (!$sql1){
$message  = '<br><br><b>nao deu certo o select! </b>' . mysql_error() . "\n";
}
else
$message  = '<br>Query completa!</b> ' . $sql1;
echo $message;
?>

<br><br>
<select name="turma_id_turma" id="turma_id_turma">
<option selected value="0">Selecione sua turma</option>
<?
if (mysql_num_rows($con) > 0) { // Se o numero de linhas que retornar do banco for maior que 0, ou seja, se tiver coisa no banco, então...
while($rs = mysql_fetch_object($con)) { // vai pegar esse objeto e ir duplicando!
?>
<option value="
<? echo $rs->id; ?>">
<? echo $rs->turma; ?></option>
<?
}//termina while
}//termina if
?>



quando mandei imprimir o sql1 ele mostrou: SELECT id_turma FROM turma

Dai fiz de uma forma diferente, como você pode ver acima:

if (!$sql1){
$message  = '<br><br><b>nao deu certo o select! </b>' . mysql_error() . "\n";
}
else
$message  = '<br>Query completa!</b> ' . $sql1;
echo $message;
?>

e ele deu o seguinte:

Query completa! SELECT id_turma FROM turma

esse select name não entendi direito:

<select name="turma_id_turma" id="turma_id_turma">

achei o erro. O certo

$con = mysql_query($sql1);

ao invés de:
$con = mysql_query(sql1);

agora ele mostrou o selecione e um negocio em branco...
estranho pois tenho uma turma cadastrada, e não mostrou no combobox.

finalmente ele puxou!!

só não entendi mto bem aqui:

<select name="id_turma" id="turma_id_turma">

E pra eu puxar o que eu selecionei pra tabela aluno?

Antes eu fazia assim:
$turma_id_turma=$_POST['turma_id_turma'];

Pois eu digitava o nome da turma... como faço agora pra puxar o valor do combobox?

#10 CMAC

CMAC

    Normal

  • Usuários
  • 93 posts
  • Sexo:Masculino

Posted 15/09/2008, 16:58

Para recuperar variaveis POST é indiferente se é um text field ou um select ou um radio, etc.

Suponhamos que temos o seguinte select, em HTML:
<select name="nome_do_select">
	<option value="valor_a_recuperar1">Valor 1</option>
	<option value="valor_a_recuperar1">Valor 2</option>
</select>

Quando em PHP fazermos $_POST['nome_do_select'], vamos obter 'valor_a_recuperar1' ou 'valor_a_recuperar2', consoante o escolhido na lista.

Espero ter ajudado!

#11 trizzo

trizzo

    Turista

  • Usuários
  • 33 posts
  • Sexo:Não informado

Posted 15/09/2008, 17:19

Não consegui... tenho dois arquivos:

cadastro_aluno.php:

<HTML>
<HEAD>
 <TITLE>Cadastro de alunos</TITLE>
</HEAD>
<BODY>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<form method="post" action="cadastro.php">
<FONT face="Arial" SIZE=3 COLOR="black"><h1>Cadastro de Alunos</h1>
<?
  $connect=mysql_connect("localhost","root","") or die("Connection Failure to Database");
  //echo "Conectado ao servidor de Banco de Dados!<br><br>";
  mysql_select_db("cadastro",$connect) or die ("Não é possível selecionar o banco de dados");
  //echo "O Banco de Dados " . "cadastro" . " foi selecionado";

$sql1 = "SELECT id_turma FROM turma";
$con = mysql_query($sql1);
?>
<br>
<font color="black" face="Arial" size="2">RA Aluno: <input name="ra_aluno" type="text"><br></font><br>
<font color="black" face="Arial" size="2">Turma: </font><select name="turma_id_turma" id="turma_id_turma">
<option selected value="0">Selecione sua Turma</option>
<?
if (mysql_num_rows($con) > 0) { // Se o numero de linhas que retornar do banco for maior que 0, ou seja, se tiver coisa no banco, então...
while($rs = mysql_fetch_object($con))
{ // vai pegar esse objeto e ir duplicando!
?>
<option value="
<? echo $rs->id; ?>">
<? echo $rs->id_turma; ?></option>
<?
}//termina while
}//termina if
?>
</select>
<br>
<br>
  <font color="black" face="Arial" size="2">Nome Aluno: <input name="nome_aluno" type="text"><br></font><br>
  <font color="black" face="Arial" size="2">Logradouro: <input name="logradouro" type="text"></font>
  <font color="black" face="Arial" size="2"> Numero: <input name="numero" type="text"></font>
  <font color="black" face="Arial" size="2">Bairro: <input name="bairro" type="text"></font>
  <font color="black" face="Arial" size="2">Cidade:<input name="cidade" type="text"></font><br>
  <font color="black" face="Arial" size="2"><br>Estado: <input name="estado" type="text"><br></font><br>
  <font color="black" face="Arial" size="2">Telefone: <input name="telefone" type="text"><br></font><br>
  <font color="black" face="Arial" size="2">Naturalidade: <input name="naturalidade" type="text"><br></font><br>
  <font color="black" face="Arial" size="2">Nome do Pai: <input name="nome_pai" type="text"><br></font><br>
  <font color="black" face="Arial" size="2">Nome da Mãe: <input name="nome_mae" type="text"><br></font><br>
  <font color="black" face="Arial" size="2">
  <input value="Enviar" type="submit">
  <input type = reset value = Limpar Campos></font></font>
  <br>
   <br>
  <hr>
  <font color="green" face="Arial" size="3"><a href="portal.html">Voltar a p&aacute;gina inicial</a></font>
</form>
</BODY>
</HTML>



cadastro.php:

<HTML>
<TITLE>Cadastro de Alunos</TITLE>
<BODY>
<FONT face="Arial" SIZE=3 COLOR="black">
<?
echo "<h1>Cadastro de Alunos</h1>";
include 'aluno.php';
$ra_aluno=$_POST['ra_aluno'];
$turma_id_turma=$_POST['turma_id_turma'];
$nome_aluno=$_POST['nome_aluno'];
$logradouro=$_POST['logradouro'];
$numero=$_POST['numero'];
$bairro=$_POST['bairro'];
$cidade=$_POST['cidade'];
$estado=$_POST['estado'];
$telefone=$_POST['telefone'];
$naturalidade=$_POST['naturalidade'];
$nome_pai=$_POST['nome_pai'];
$nome_mae=$_POST['nome_mae'];

//if ($ra_aluno==NULL){
//echo "Preencha o campo RA por favor.";
//exit();
//}
	$aluno=new aluno;
	$aluno->setRa_aluno($ra_aluno);
	$aluno->setTurma_id_turma($turma_id_turma);
	$aluno->setNome_aluno($nome_aluno);
	$aluno->setLogradouro($logradouro);
	$aluno->setNumero($numero);
	$aluno->setBairro($bairro);
	$aluno->setCidade($cidade);
	$aluno->setEstado($estado);
	$aluno->setTelefone($telefone);
	$aluno->setNaturalidade($naturalidade);
	$aluno->setNome_pai($nome_pai);
	$aluno->setNome_mae($nome_mae);


	echo "Por favor, confirme se seus dados foram preenchidos corretamente:<br><br>";
	echo "<b>RA Aluno:</b> ",$ra_aluno;
	echo "<b><br><br>ID Turma:</b> ",$turma_id_turma;
	echo "<b><br><br>Nome:</b>  ",$nome_aluno;
	echo "<b><br><br>Logradouro:</b> ",$logradouro;
	echo "<b><br><br>Numero:</b> ",$numero;
	echo "<b><br><br>Bairro:</b> ",$bairro;
	echo "<b><br><br>Cidade:</b>  ",$cidade;
	echo "<b><br><br>Estado:</b>  ",$estado;
	echo "<b><br><br>Telefone:</b>  ",$telefone;
	echo "<b><br><br>Naturalidade:</b>  ",$naturalidade;
	echo "<b><br><br>Nome do Pai:</b>  ",$nome_pai;
	echo "<b><br><br>Nome da Mãe:</b> ",$nome_mae;

  $connect=mysql_connect("localhost","root","") or die("Connection Failure to Database");
  //echo "Conectado ao servidor de Banco de Dados!<br><br>";
  mysql_select_db("cadastro",$connect) or die ("Não é possível selecionar o banco de dados");
  //echo "O Banco de Dados " . "cadastro" . " foi selecionado";

  function CadastrarAluno($aluno){
  $cad="INSERT INTO aluno(ra_aluno, turma_id_turma, nome_aluno, logradouro, numero, bairro, cidade, estado, telefone, naturalidade, nome_pai, nome_mae) values(".$aluno->getRa_aluno().",".$aluno->getTurma_id_turma().",'".$aluno->getNome_aluno()."','".$aluno->getLogradouro()."','".$aluno->getNumero()."','".$aluno->getBairro()."','".$aluno->getCidade()."','".$aluno->getEstado()."','".$aluno->getTelefone()."','".$aluno->getNaturalidade()."','".$aluno->getNome_pai()."','".$aluno->getNome_mae()."')";
   $result=mysql_query($cad);
   if (!$result) {
	 $message  = '<br><br><br><br><B>Query invalida! </b>' . mysql_error() . "\n";
   }
	else
	 $message  = '<br><br><br><b>Query completa! Os seguintes dados foram inseridos no Banco de Dados:</b> ' . $cad;
	  die($message);
   }
CadastrarAluno($aluno);
?>
<br>
<br>
<hr>
	 <br>
	 </FONT>
<font color="green" face="Arial" size="3"><a href="portal.html">Voltar a p&aacute;gina inicial</a></font>
</BODY>
</HTML>


Resultado:
RA Aluno: 12345

ID Turma:

Nome: Jose

Logradouro: Rua 1

Numero: 300

Bairro: Centro

Cidade: Rio de Janeiro

Estado: RJ

Telefone: 1234567

Naturalidade: São Paulo

Nome do Pai: João

Nome da Mãe: Maria

Query invalida! You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''Jose','Rua 1','300','Centro','Rio de Janeiro','RJ','1234567','São Paulo','João'' at line 1

Edição feita por: trizzo, 15/09/2008, 17:23.


#12 Maykel Esser

Maykel Esser

    Super Veterano

  • Usuários
  • 1536 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 15/09/2008, 17:34

seu insert tá com algum problema, revisa ele... manda imprimir o $cad e cola aí pra gente ver!

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens! add.png


#13 trizzo

trizzo

    Turista

  • Usuários
  • 33 posts
  • Sexo:Não informado

Posted 17/09/2008, 14:38

Pessoal, estou com problema pra inserir o valor selecionado do combobox no banco de dados na tabela aluno. Ta retornando 0.
O combobox está puxando os dados perfeitamente.

Estou Cadastrando um Aluno, puxando a turma na tabela turma, e inserindo na tabela aluno.


Aqui está meu código do primeiro arquivo que tem o combobox, apenas selecionei a parte do combobox:

<?
$sql1 = "SELECT id_turma FROM turma";
$con = mysql_query($sql1);
?>
<br>
Turma: </font><select name="turma_id_turma" id="turma_id_turma">
<option selected value="0">Selecione sua Turma</option>
<?
if (mysql_num_rows($con) > 0) { // Se o numero de linhas que retornar do banco for maior que 0, ou seja, se tiver coisa no banco, então...
while($rs = mysql_fetch_object($con))
{ // vai pegar esse objeto e ir duplicando!
?>
<option value="
<? echo $rs->turma_id_turma; ?>">
<? echo $rs->id_turma; ?></option>
<?
}//termina while
}//termina if
?>



O segundo arquivo que insere os dados, tenho o seguinte:

	
				$turma_id_turma=$_POST['turma_id_turma'];
	$aluno=new pessoa;
	$aluno->setTurma_id_turma($turma_id_turma);



function CadastrarAluno($aluno){
$cad="INSERT INTO aluno(ra_aluno, turma_id_turma, nome_aluno, logradouro, numero, bairro, cidade, estado, telefone, naturalidade, nome_pai, nome_mae) values(".$aluno->getRa_aluno().",[b]'".$aluno->getTurma_id_turma()."'[/b],'".$aluno->getNome_aluno()."','".$aluno->getLogradouro()."','".$aluno->getNumero()."','".$aluno->getBairro()."','".$aluno->getCidade()."','".$aluno->getEstado()."','".$aluno->getTelefone()."','".$aluno->getNaturalidade()."','".$aluno->getNome_pai()."','".$aluno->getNome_mae()."')";
   $result=mysql_query($cad);
   if (!$result) {
	 $message  = '<br><br><br><br><B>Query invalida! </b>' . mysql_error() . "\n";
   }
	else
	 $message  = '<br><br><br><b>Query completa! Os seguintes dados foram inseridos no Banco de Dados:</b> ' . $cad;
	  die($message);
   }


CadastrarAluno($aluno);






Resultado:

Query completa! Os seguintes dados foram inseridos no Banco de Dados: INSERT INTO aluno(ra_aluno, turma_id_turma, nome_aluno, logradouro, numero, bairro, cidade, estado, telefone, naturalidade, nome_pai, nome_mae) values(849684,' ','8','89898','9','898','9','98','98','89','9','889').

Entretanto o compo turma está vazio em negrito no resultado acima.


Alguém poderia me ajudar pra ver o que tem de errado ai, que ele está retornando 0, por favor?

Muito Obrigado!

Edição feita por: trizzo, 17/09/2008, 19:40.





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq