Ir para conteúdo

POWERED BY:

Arquivado

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

Beto Lima

if dentro de <option>

Recommended Posts

Como imprimir uma label ao invés do conteúdo vinda do banco?

Ex: no exemplo abaixo vai mostrar os números dos estados (22 para RS) (1 para AC) etc....

 

Como fazer imprimir na combo uma label ao invés de número?

 

 

<?php 
$q = "SELECT DISTINCT uf FROM produtos ORDER BY uf ASC";
$d = mysql_query($q);
while($r = mysql_fetch_array($d))
echo '<option value="'.$r['uf'].'">'.$r['uf'].'</option>';	
?>

 

tentei colocar um if assim dentro do php:

 

if ($r['uf'] == 22) {

$r['uf'] = "RS";

}

 

mas não deu certo....

Compartilhar este post


Link para o post
Compartilhar em outros sites

o combo vai popular assim:

 

1

2

3

4

5

6

....

 

ao invés de mostrar os números na combo, quero mostrar letras

 

onde 1 vai pra AC

2 para PR

22 para RS

e assim por diante....

 

como se fosse uma label

Compartilhar este post


Link para o post
Compartilhar em outros sites

deixa eu ver se entendi.

você quer fazer assimAo inves de aparecer a SIGLA você quer aparecer o número SIGLA certo?

Esse número esta gravado no banco ou não ?

você quer que os números ficam 1, 2, 3,4,5,6 etc... aparecem sozinhos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como é a sua tabela?

você tem cadastrada nela as siglas?

 

ou pelo que tô vendo, é uma segunda tabela que as tem certo?

Então você tem que fazer uma segunda consulta, que recebe como condição o retorno da primeira..

 

Não é tão complicado, tô procurando um exemplo aqui.

$sql1 = ("SELECT * FROM `outratabela` where 'campo' = '$_POST['']'  ";
$dados=mysql_fetch_assoc($sql1);
segunda query que vai trazer as siglas:
$sql2 = mysql_query("SELECT * FROM `tabela` where `campo` = '$dados['']' ");
$dados2 = mysql_fetch_assoc($sql2);

Compartilhar este post


Link para o post
Compartilhar em outros sites

CREATE TABLE `aux_uf` (

`id` int(11) NOT NULL auto_increment,

`uf` varchar(2) default NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=29 ;

 

--

-- Extraindo dados da tabela `aux_uf`

--

 

INSERT INTO `aux_uf` (`id`, `uf`) VALUES

(2, 'AC'),

(3, 'AL'),

(4, 'AP'),

(5, 'AM'),

(6, 'BA'),

(7, 'CE'),

(8, 'DF'),

(9, 'ES'),

(10, 'GO'),

(11, 'MA'),

(12, 'MT'),

(13, 'MS'),

(14, 'MG'),

(15, 'PA'),

(16, 'PB'),

(17, 'PR'),

(18, 'PE'),

(19, 'PI'),

(20, 'RJ'),

(21, 'RN'),

(22, 'RS'),

(23, 'RO'),

(24, 'RR'),

(25, 'SC'),

(26, 'SP'),

(27, 'SE'),

(28, 'TO');

 

 

CREATE TABLE `produtos` (

`id` int(11) NOT NULL auto_increment,

`uf` int(2) default NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

 

--

-- Extraindo dados da tabela `produtos`

--

 

INSERT INTO `produtos` (`id`, `uf`) VALUES

(2, '22'),

(3, '20');

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pronto uê... a primeira consulta você faz na `produtos`, e a segunda você faz na `aux_uf`

conseguiu? tentou?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz a consulta assim:

 

"SELECT DISTINCT produtos.uf, aux_uf.uf AS e FROM produtos INNER JOIN aux_uf ON produtos.uf = aux_uf.id ORDER BY e ASC";

 

Ai você vai ter:

 

$r['uf'] o numero

 

$r['e'] a sigla

 

Por que você fez assim??? Não podia gravar a sigla logo de uma vez ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu JCMPJ deu certo como você disse....

 

Não poderia gravar a sigla direto porque o sistema já está vinculando para uma outra tabela...

 

Brigadão

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.