Ir para conteúdo

POWERED BY:

Arquivado

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

Cyberoma

[Resolvido] Inserir dados atual de um registro no select (busca n

Recommended Posts

Pessoal eu queria saber como buscar dados no banco e jogar em um select o valor atual de um registro.. vou explicar melhor..

 

Quando eu for precisar editar um cadastro eu faço a busca no banco. Porem se tiver uma campo que seja select (por exemplo ESTADO), não sei como fazer para que o select receba o valor (ex: BA) que estar no banco e os outros valores do select sejam diferentes obviamente (SP, RJ, etc).. Entenderam?

 

Uso esse codigo para buscar os dados no banco e jogar no select.

 

<?php
	  include "config.php";

         $sql = mysql_query("SELECT * FROM tabela ORDER BY id");
         ?>
             <select name="campo" id="campo">
               <option>Selecione...</option>
               <?php while($linha = mysql_fetch_array($sql)) { ?>
               <option value="<?php echo $linha['id'] ?>"> <?php echo $linha['nome'] ?></option>
               <?php } ?>
             </select>

 

Alguem poderia me ajudar?

Desde ja agradeço pela atenção.

 

alguem tem alguma dica?

 

Galera fiz assim.

 

<?php
	  include "config.php";

         $sql1 = mysql_query("SELECT * FROM funcionarios WHERE id='$id'");
         ?>
             <select name="nivel_acesso" id="nivel_acesso">

               <?php while($linha = mysql_fetch_array($sql1)) { ?>
               <option value="<?php echo $linha['id'] ?>"> <?php echo $linha['nivel_acesso'] ?></option>
               <?php } 

			$sql2 = mysql_query("SELECT * FROM funcionarios");
			while($linha = mysql_fetch_array($sql2)) { ?>

               <option value="<?php echo $linha['id'] ?>"> <?php echo $linha['nivel_acesso'] ?></option>
               <?php } 


			?>
             </select>

 

Ele coloca o valor atual,porem ele repete o valor depois.

 

Putz, ninguem pode me ajudar? ou não entenderam o meu problema?

 

..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Tarde,

 

Acho que entendi o que você precisa.

 

um if basico no seu loop resolve o problema, ex:

 

Como seus dados já estão salvos no banco, presumo que você chamou esses dados antes de popular o select, basta comparar o valor que já está salvo como o valor atual da consulta.

 

<?php
  include "config.php";
  $sql = mysql_query("SELECT * FROM tabela ORDER BY id");
?>
  <select name="campo" id="campo">
     <option>Selecione...</option>
     <?php

        $dado = [valor já salvo]

        while($linha = mysql_fetch_array($sql)) {
        if($linha['id'] == $dados){
            $select = ' selected="selected"';
        }else{
            $select = '';
        }

     ?>
        <option value="<?php echo $linha['id'] ?>"<?php echo $select; ?>> <?php echo $linha['nome'] ?></option>
     <?php } ?>
  </select>

 

Tenta implementar e nos diga se funcionou, até mais

 

Pessoal eu queria saber como buscar dados no banco e jogar em um select o valor atual de um registro.. vou explicar melhor..

 

Quando eu for precisar editar um cadastro eu faço a busca no banco. Porem se tiver uma campo que seja select (por exemplo ESTADO), não sei como fazer para que o select receba o valor (ex: BA) que estar no banco e os outros valores do select sejam diferentes obviamente (SP, RJ, etc).. Entenderam?

 

Uso esse codigo para buscar os dados no banco e jogar no select.

 

<?php
	  include "config.php";

         $sql = mysql_query("SELECT * FROM tabela ORDER BY id");
         ?>
             <select name="campo" id="campo">
               <option>Selecione...</option>
               <?php while($linha = mysql_fetch_array($sql)) { ?>
               <option value="<?php echo $linha['id'] ?>"> <?php echo $linha['nome'] ?></option>
               <?php } ?>
             </select>

 

Alguem poderia me ajudar?

Desde ja agradeço pela atenção.

 

Ops, foi um 's' a mais na hora de comparar, lembre de corrigir na hora de testar.

 

Até...

 

Boa Tarde,

 

Acho que entendi o que você precisa.

 

um if basico no seu loop resolve o problema, ex:

 

Como seus dados já estão salvos no banco, presumo que você chamou esses dados antes de popular o select, basta comparar o valor que já está salvo como o valor atual da consulta.

 

<?php
  include "config.php";
  $sql = mysql_query("SELECT * FROM tabela ORDER BY id");
?>
  <select name="campo" id="campo">
     <option>Selecione...</option>
     <?php

        $dado = [valor já salvo]

        while($linha = mysql_fetch_array($sql)) {
        if($linha['id'] == $dados){
            $select = ' selected="selected"';
        }else{
            $select = '';
        }

     ?>
        <option value="<?php echo $linha['id'] ?>"<?php echo $select; ?>> <?php echo $linha['nome'] ?></option>
     <?php } ?>
  </select>

 

Tenta implementar e nos diga se funcionou, até mais

 

Ops, foi um 's' a mais na hora de comparar, lembre de corrigir na hora de testar.

 

Até...

 

Boa Tarde,

 

Acho que entendi o que você precisa.

 

um if basico no seu loop resolve o problema, ex:

 

Como seus dados já estão salvos no banco, presumo que você chamou esses dados antes de popular o select, basta comparar o valor que já está salvo como o valor atual da consulta.

 

<?php
  include "config.php";
  $sql = mysql_query("SELECT * FROM tabela ORDER BY id");
?>
  <select name="campo" id="campo">
     <option>Selecione...</option>
     <?php

        $dado = [valor já salvo]

        while($linha = mysql_fetch_array($sql)) {
        if($linha['id'] == $dados){
            $select = ' selected="selected"';
        }else{
            $select = '';
        }

     ?>
        <option value="<?php echo $linha['id'] ?>"<?php echo $select; ?>> <?php echo $linha['nome'] ?></option>
     <?php } ?>
  </select>

 

Tenta implementar e nos diga se funcionou, até mais

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rafael, obrigado pela ajuda..

 

Eu nao entendi esse $dado = [valor já salvo].. que valor é esse,e como vou pega-lo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo o que você mostrou seria o valor que você salvou no campo nível de acesso.

 

Você quer popular o select com os níveis de acesso que estão em outra tabela certo?

 

Se for isso, você está fazendo errado utilizando dois selects na mesma tabela.

 

Cola aqui o conteúdo das duas tabelas (funcionários e nivel), daí faço o exemplo com seus campos reais.

 

Até mais

 

Rafael, obrigado pela ajuda..

 

Eu nao entendi esse $dado = [valor já salvo].. que valor é esse,e como vou pega-lo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo o que você mostrou seria o valor que você salvou no campo nível de acesso.

 

Você quer popular o select com os níveis de acesso que estão em outra tabela certo?

 

Se for isso, você está fazendo errado utilizando dois selects na mesma tabela.

 

Cola aqui o conteúdo das duas tabelas (funcionários e nivel), daí faço o exemplo com seus campos reais.

 

Até mais

 

Na verdade estou usando somente uma tabela > funcionarios

 

com os campos:

 

- id

- nome

- email

-login

- senha

-nivel_acesso

 

Esta errado? Precisa fazer a tabela nivel de acesso é?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Varia de caso em caso, geralmente uso duas tabelas para trabalhar com ids ao invés de nomes, assim se evita erro de charset e da mais velocidade as consultas.

 

Mais enfim, se você tem somente uma tabela fica muito mais fácil, você não vai precisar da segunda consulta para pegar o select do nível.

 

<?php
include "config.php";
$sql = mysql_query("SELECT * FROM funcionarios WHERE id='$id'");
$dados = mysql_fetch_assoc($sql);
?>
<select name="nivel_acesso" id="nivel_acesso">
   <option value="admin" <?php if($dados['nivel_acesso'] == 'admin'){ echo 'selected="selected"';} ?>>Administrador</option>
   <option value="gerente" <?php if($dados['nivel_acesso'] == 'gerente'){ echo 'selected="selected"';} ?>>Gerente</option>
   <option value="operador" <?php if($dados['nivel_acesso'] == 'operador'){ echo 'selected="selected"';} ?>>Operador</option>
</select>

 

Você só precisa trocar os valores do select pelos seus níveis de acesso.

 

Se não for isso, vamos conversando por aqui. até mais

 

Na verdade estou usando somente uma tabela > funcionarios

 

com os campos:

 

- id

- nome

- email

-login

- senha

-nivel_acesso

 

Esta errado? Precisa fazer a tabela nivel de acesso é?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rafael, olha só ele fez o select com os 3 niveis..

 

Mas o que eu quero é o seguinte.

 

Tenho uma usuario cadastrado: nome = teste / login= n2 / nivel_acesso = 2

 

Agora eu vou na tela de editar cadastro.

 

Ai eu seleciono o usuario "teste". e vai ser listado pra mim.

 

O campo(textfield) nome: ja com com o registro dentro do campo > "teste"

 

O campo(textfield) login: ja com com o registro dentro do campo > "n2"

 

O campo (select) nivel_acesso: QUE DEVERIA JA ESTAR COM O NIVEL '2' SETADO. E AS OUTRAS OPÇÕES SER 1 E 3 (Ao inves de numeros ser "administrador, usuario...")

 

Ai eu edito os campo se eu quizer e clico em atualizar.

 

imgpuz.jpg

 

Uploaded with ImageShack.us

 

Entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os valores do input são números?

 

se for o caso basta trocar nas informações que te enviei a pouco.

 

<?php
       include "config.php";
       $sql = mysql_query("SELECT * FROM funcionarios WHERE id='$id'");
       $dados = mysql_fetch_assoc($sql);
?>
<select name="nivel_acesso" id="nivel_acesso">
   <option value="1" <?php if($dados['nivel_acesso'] == '1'){ echo 'selected="selected"';} ?>>Administrador</option>
   <option value="2" <?php if($dados['nivel_acesso'] == '2'){ echo 'selected="selected"';} ?>>Gerente</option>
   <option value="3" <?php if($dados['nivel_acesso'] == '3'){ echo 'selected="selected"';} ?>>Operador</option>
</select>

 

Se quiser posta os arquivos em algum lugar ou me manda por email para eu dar uma olhada melhor - rafael@impactocreative.com.br

 

até mais

 

Rafael, olha só ele fez o select com os 3 niveis..

 

Mas o que eu quero é o seguinte.

 

Tenho uma usuario cadastrado: nome = teste / login= n2 / nivel_acesso = 2

 

Agora eu vou na tela de editar cadastro.

 

Ai eu seleciono o usuario "teste". e vai ser listado pra mim.

 

O campo(textfield) nome: ja com com o registro dentro do campo > "teste"

 

O campo(textfield) login: ja com com o registro dentro do campo > "n2"

 

O campo (select) nivel_acesso: QUE DEVERIA JA ESTAR COM O NIVEL '2' SETADO. E AS OUTRAS OPÇÕES SER 1 E 3 (Ao inves de numeros ser "administrador, usuario...")

 

Ai eu edito os campo se eu quizer e clico em atualizar.

 

imgpuz.jpg

 

Uploaded with ImageShack.us

 

Entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aeee FUNCIONOU Rafael, era isso mesmoo nuss.. haha

 

Parceiro agora me explica o que é isso 'selected="selected"' ???

 

Outra coisa, se ao inves de ser nivel_acesso ser ESTADO.

 

<option value="BA" <?php if($dados['estado'] == '1'){ echo 'selected="selected"';} ?>>Bahia</option>
<option value="SP" <?php if($dados['estado'] == '2'){ echo 'selected="selected"';} ?>>São Paulo</option>
...

FAzer isso com todos os ESTADOS???

 

Por que nivel de acesso são 3, mas estados são mais de 20.. É isso mesmo?

 

Cara muito obrigado pela ajuda,, estava precisando muito disso..

abração

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza que bom que deu certo.

 

o selected="selected" é um atributo do campo select para dizer qual option vai estar em evidencia quando se carregar a página.

 

se você olhar o código fonte, o option que estiver com o selected="selected" é o que vai estar aparecendo, ex:

 

<select name="nivel">
<option value="1">Administrador</option>
   <option value="2" selected="selected">Cliente</option> // neste caso o cliente vai estar em evidencia.
   <option value="3">Usuário</option>
</select>

 

No caso dos estados é o mesmo.

 

Para editar o estado você faz o mesmo procedimento, faz a consulta e em seguida faz o if para verificar qual o valor é correspondente ao select.

 

<select name="estado">  
   <option value="AC" <?php if($dados['estado'] == 'AC'){ echo 'selected="selected"';} ?>>AC</option>  
   <option value="AL" <?php if($dados['estado'] == 'AL'){ echo 'selected="selected"';} ?>>AL</option>  
   <option value="AM" <?php if($dados['estado'] == 'AM'){ echo 'selected="selected"';} ?>>AM</option>  
   <option value="AP" <?php if($dados['estado'] == 'AP'){ echo 'selected="selected"';} ?>>AP</option>  
   <option value="BA" <?php if($dados['estado'] == 'BA'){ echo 'selected="selected"';} ?>>BA</option>  
   <option value="CE" <?php if($dados['estado'] == 'CE'){ echo 'selected="selected"';} ?>>CE</option>  
   <option value="DF" <?php if($dados['estado'] == 'DF'){ echo 'selected="selected"';} ?>>DF</option>  
   <option value="ES" <?php if($dados['estado'] == 'ES'){ echo 'selected="selected"';} ?>>ES</option>  
   <option value="GO" <?php if($dados['estado'] == 'GO'){ echo 'selected="selected"';} ?>>GO</option>  
   <option value="MA" <?php if($dados['estado'] == 'MA'){ echo 'selected="selected"';} ?>>MA</option>  
   <option value="MG" <?php if($dados['estado'] == 'MG'){ echo 'selected="selected"';} ?>>MG</option>  
   <option value="MS" <?php if($dados['estado'] == 'MS'){ echo 'selected="selected"';} ?>>MS</option>  
   <option value="MT" <?php if($dados['estado'] == 'MT'){ echo 'selected="selected"';} ?>>MT</option>  
   <option value="PA" <?php if($dados['estado'] == 'PA'){ echo 'selected="selected"';} ?>>PA</option>  
   <option value="PB" <?php if($dados['estado'] == 'PB'){ echo 'selected="selected"';} ?>>PB</option>  
   <option value="PE" <?php if($dados['estado'] == 'PE'){ echo 'selected="selected"';} ?>>PE</option>  
   <option value="PI" <?php if($dados['estado'] == 'PI'){ echo 'selected="selected"';} ?>>PI</option>  
   <option value="PR" <?php if($dados['estado'] == 'PR'){ echo 'selected="selected"';} ?>>PR</option>  
   <option value="RJ" <?php if($dados['estado'] == 'RJ'){ echo 'selected="selected"';} ?>>RJ</option>  
   <option value="RN" <?php if($dados['estado'] == 'RN'){ echo 'selected="selected"';} ?>>RN</option>  
   <option value="RO" <?php if($dados['estado'] == 'RO'){ echo 'selected="selected"';} ?>>RO</option>  
   <option value="RR" <?php if($dados['estado'] == 'RR'){ echo 'selected="selected"';} ?>>RR</option>  
   <option value="RS" <?php if($dados['estado'] == 'RS'){ echo 'selected="selected"';} ?>>RS</option>  
   <option value="SC" <?php if($dados['estado'] == 'SC'){ echo 'selected="selected"';} ?>>SC</option>  
   <option value="SE" <?php if($dados['estado'] == 'SE'){ echo 'selected="selected"';} ?>>SE</option>  
   <option value="SP" <?php if($dados['estado'] == 'SP'){ echo 'selected="selected"';} ?>>SP</option>  
   <option value="TO" <?php if($dados['estado'] == 'TO'){ echo 'selected="selected"';} ?>>TO</option>  
</select> 

 

Explicando o código:

<option value="TO" <?php if($dados['estado'] == 'TO'){ echo 'selected="selected"';} ?>>TO</option>
   // o if() compara o valor $dados['estado'] com o que estiver entre '' no caso TO se valor salvo no banco de dados for igual e ele vai escrever o selected="selected" dentro do option e este vai ficar em envidencia, se o valor for diferente ele pula para o próximo e faz a mesma condição até que se acabem todos.

 

Você questionou a quantidade e isso é normal mais você pode utilizar outras tabelas no banco para facilitar esse trabalho e utilizar um loop, por exemplo se você tiver uma tabela no mysql com os estados cadastrados ficaria assim:

 

<select name="estado">
<option value="">Selecione</option>
<?php 

$sqlEstados = "SELECT * FROM estado ORDER BY estado ASC";
while($qrEstados = mysql_fetch_assoc($sqlEstados)){
   	if($dados['estado'] == $qrEstados['estado']){ //neste trecho $dados['estado'] é o valor que você salvou no banco e conseguiu fazendo um primeiro select com o id da tabela que você quer atualizar.
       	$select = 'selected="selected"';
       }else{
       	$select = '';
       }
       echo '<option value="$qrEstados['estado']" '.$select.'>'.$qrEstados['estado'].'</option>';
   }

?>
</select>

 

Neste exemplo ficam bem menos linhas e de mais fácil manutenção.

 

Espero ter ajudado, duvidas poste ai.

 

Até mais

 

 

 

 

Aeee FUNCIONOU Rafael, era isso mesmoo nuss.. haha

 

Parceiro agora me explica o que é isso 'selected="selected"' ???

 

Outra coisa, se ao inves de ser nivel_acesso ser ESTADO.

 

<option value="BA" <?php if($dados['estado'] == '1'){ echo 'selected="selected"';} ?>>Bahia</option>
<option value="SP" <?php if($dados['estado'] == '2'){ echo 'selected="selected"';} ?>>São Paulo</option>
...

FAzer isso com todos os ESTADOS???

 

Por que nivel de acesso são 3, mas estados são mais de 20.. É isso mesmo?

 

Cara muito obrigado pela ajuda,, estava precisando muito disso..

abração

Compartilhar este post


Link para o post
Compartilhar em outros sites

:o

 

Tuh é o cara, ta muito bem explicado..

 

Realmente vou usar uma tabela somente para os estados..

 

Pow cara OBRIGADO, você ajudou e muito.

 

Abraçãoo \o/

 

Topico Resolvido..

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.