Ir para conteúdo

POWERED BY:

Arquivado

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

Taís Moraes

[Resolvido] Como trazer dados do BD para o componente select

Recommended Posts

Minha duvida é o seguinte, eu tenho um cadastro de livros e um cadastro de categoria e quando

eu gravo um livro conseqüentemente eu tenho que apontar a categoria dele, até então tudo bem, eu trago as categorias do banco categorias em um select e o livro é gravado corretamente com o código da categoria.

O problema esta em quando eu quero alterar, eu não consigo trazer a categoria em que o livro já esta cadastrado.

 

Segue o código do meu componente select.

 

<select name="select_categoria" id="select_categoria" >
<option>• Escolha a Categoria</option>
<?
 	$sql="select * from categorias order by codigo";
		$sql_result=mysql_query($sql,$con)or die("Erro:".mysql_error()); 		 	 		 		
		while($row=mysql_fetch_array($sql_result)){
		 		echo("<option value=\"$row[Codigo]\">$row[Nome]</option>\n");
 	}

?>

 

se alguem puder me ajudar com isso, agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

um simples if/else

while($row=mysql_fetch_array($sql_result))
{
   $selected = ( $row['Codigo']==$anterior ) ? ' selected="selected"' : '';
   echo '<option value="'.$row['Codigo'].'"'.$selected.'>'.$row['Nome'].'</option>'."\n";
}
novamente, fica a dica: idente os teus códigos !

 

a forma que você apresenta eles, dificulta a leitura.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara acho que é isso que você quer...

qualquer coisa grita ae....

 

 

<select name="tipo_imo">
  <?php

       //atribuindo valores para listbox tipo de imóvel
       $sql_imovel = "SELECT * FROM tipo_imovel";
       $resultado_imovel = mysql_query($sql_imovel) or die("Não foi possível realizar a consulta ao banco de dados");

       //relação de tipo de imóvel
       while($linha=mysql_fetch_array($resultado_imovel)){
		$id = $linha["id"];
		$tipo = $linha["tipo"];
	echo "<option value='$id'>$tipo</option>";
       }
  ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

William, não sei o que estou fazendo errado na identação, eu apenas copio meu codigo e colo, e meu codigo no Dreamweaver esta identado =/ se eu tiver que fazer de outra maneira me explique por favor!

 

Enfim, acho que não consegui deixar minha duvida clara, o que o codigo do Willian traz é a mesma coisa que o meu traz!

só que a questão não é trazer apenas os dados da tabela categorias, mas sim da tabela livros, onde o meu livro recebe uma categoria.

 

então eu tenho duas tabelas...

 

CATEGORIAS com os campos CODIGO, NOME.

 

E

 

LIVROS com os campos CODIGO, TITULO, AUTOR, EDITORA e CATEGORIA.

 

na tabela LIVROS no campo CATEGORIA eu passo o CODIGO da categoria da tabela CATEGORIAS beleza...

 

a gravação do meu livro esta ok!

 

ai então eu desejo alterar os dados do livro, pois por exemplo, eu passei a categoria errada.

 

eu chamo então a tela de alteraçao, dai no meu componente select eu ja tenho que trazer a categoria existente no cadastro do livro.

 

ficou melhor pra entender assim?

:(

Compartilhar este post


Link para o post
Compartilhar em outros sites

//desculpe o codigo precario

$antigo = $_GET["id"](ou $_POST)

$livros = select *from categorias where codigo='$antigo'
$result_livros = $row["codigo"];



echo''. $result_livros.' Categoria existente ';

select from livros where codigo=$result_livros;
update livros set CODIGO="novocod" and TITULO='novo titulo' and AUTOR='novoautor' and EDITORA='nova editora' and CATEGORIA='novacateforia'


$novacat = $_POST["novacategoria"];

update categoria ='$novacat' where categoria='$result_livros';

isso ?

senão for exatamente isso acho que ajudou ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

..GBEST.. Obrigada! mas não é isso exatamente!

 

eu não quero saber como trazer os dados do banco e alterar, eu quero saber como trazer por um codigo o nome da categoria de um livro cadastrado sendo que o nome desta categoria só existe na tabela categoria e não na table livros, pois na tabela livro só existe o codigo, e no componente select eu tenho que mostrar o nome.

 

 

 

 

<select name="select_categoria" id="select_categoria" >

<option>• Escolha a Categoria</option>

<?

$sql="select * from categorias order by codigo";

$sql_result=mysql_query($sql,$con)or die("Erro:".mysql_error());

 

while($row=mysql_fetch_array($sql_result)){

$selected = ( $row['Codigo']==$anterior ) ? ' selected="selected"' : '';

echo '<option value="'.$row['Codigo'].'"'.$selected.'>'.$row['Nome'].'</option>'."\n";

}

?>

</select>

 

E este codigo apenas me traz as categorias cadastradas na tabela categoria!!! =/

eu preciso deles e do que ja esta cadastrado na tabela livros! o codigo ja tem que me trazer de imediato a categoria cadastrada na tabela livros...

 

nos locais em vermelho já tem que vir a categoria e a editora definidas no cadastro do livro =)'

 

:(

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

<option value="<?php echo $categoria['idcategoria'];?>" <?php echo $categoria['idcategoria'] == $livro['idcategoria'] ? 'selected="selected"' : ''; ?>><?php echo $categoria['categoria'];?></option>

é isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

nos locais em vermelho já tem que vir a categoria e a editora definidas no cadastro do livro =)'

 

:(

Imagem Postada

 

Pelo que vejo você trás os dados de livros do banco e precisa preencher o dado correto no select, se for isto, o colega William Bruno já te deu de bandeja o código, coloque no seu select o trecho de código que foi fornecido e faça o mesmo em Editora alterando somente o que quer...

 

<select name="select_categoria" id="select_categoria" >
<option>• Escolha a Categoria</option>
<?
 $sql="select * from categorias order by codigo";
 $sql_result=mysql_query($sql,$con)or die("Erro:".mysql_error()); 
 while($row=mysql_fetch_array($sql_result)){
 $selected = ( $row['Codigo']==$livro_categoria ) ? ' selected="selected"' : '';
 echo '<option value="'.$row['Codigo'].'"'.$selected.'>'.$row['Nome'].'</option>'."\n";

 }

?> 
Veja que onde se tem '$livro_categoria', é o código da categoria do livro listado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui um exemplo pro seu caso

 

<select name="pais">
   <?php
   if ($pais == "") {
      echo"<option value=\"\">-- Selecione seu País --</option>";
   } else {
      echo"<option value=\"".$pais."\" selected>".$pais."</option>";
   }
   while($x = mysql_fetch_array($consulta)){
      echo"<option value=\"".$x['nome']."\">".$x['nome']."</option>";
   }
   ?>
</select>

No caso a variavel $pais você escolhe fazer a consulta onde achar melhor. Eu faço uma só no inicio da página para todos outros campos que requerem esse tipo de exibição. Ou você pode fazer dentro do proprio select antes desse codigo.

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.