Popular select com dados vindos de duas tabelas. Trazer a opção que foi gravada no banco como primeira no select.
Boa tarde a todos!
Pessoal, estou com o seguinte problema para popular um select com dados vindos do banco.
Tenho o seguinte código abaixo para popular o select.
O que preciso fazer e não estou conseguindo?
Trazer a categoria escolhida pelo usuário e que foi gravada no banco como a primeira opção do select.
Ex: Se o usuário ao se cadastrar no site, na opção Categoria, ele escolheu a Categoria1, quando faço a seleção dos dados desse usuário, a opção Categoria que ele escolheu, neste caso Categoria1, não vem como a primeira opção e sim vem abaixo das demais cadastradas no banco.
Alguém tem alguma sugestão de como posso fazer isto?
Desde já, muito obrigado a todos.
Pessoal, estou com o seguinte problema para popular um select com dados vindos do banco.
Tenho o seguinte código abaixo para popular o select.
include "../config/config.php"; //Aqui eu busco a categoria que está gravada na tabela (piloto_campeonato). $busca2=mysql_query("SELECT * FROM piloto_campeonato WHERE id_campeonato='$id_campeonato' AND cpf='111.111.111-11'"); while($dados2 = mysql_fetch_array($busca2)) { $opcao_escolhida = $dados2['categoria']; echo $opcao_escolhida; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Aqui eu busco todas as categorias que estão gravadas na tabela (campeonatos). $busca=mysql_query("SELECT * FROM campeonatos WHERE id='$id_campeonato'"); if(!mysql_num_rows($busca)){ echo 'Nenhum dado cadastrado na base de dados'; }else{ echo "<select name=\"categoria\" id=\"categoria\">"; while($ver=mysql_fetch_row($busca)){ $id=$ver[0]; $categorias=$ver[10]; }} $categorias=unserialize($categorias); foreach($categorias as $valor) { $selected = $opcao_escolhida == $categorias['$valor'] ? ' selected="selected"' : ''; echo '<option value="'.$categorias['$valor'].'"'.$selected.'>'.$categorias['$valor'].'</option>'; } echo "</select>";
Trazer a categoria escolhida pelo usuário e que foi gravada no banco como a primeira opção do select.
Ex: Se o usuário ao se cadastrar no site, na opção Categoria, ele escolheu a Categoria1, quando faço a seleção dos dados desse usuário, a opção Categoria que ele escolheu, neste caso Categoria1, não vem como a primeira opção e sim vem abaixo das demais cadastradas no banco.
Alguém tem alguma sugestão de como posso fazer isto?
Desde já, muito obrigado a todos.
comentários (0)
suspender
Lista de Respostas:
10/11/2011 10:37am
(~13 anos atrás)
(~13 anos atrás)
Cara não importa a sequencia das opções se a opção vir selecionada, seria o ideal, por exemplo se a lista vir em ordem alfabetica, não vale a pena retirar a sequencia das opções...
Mas se vc precisa pode tentar listar assim:
"SELECT campo1, campo2, IF(id='OPCAO_SELECIONADA', 0, 1) AS ordem FROM campeonatos WHERE id='$id_campeonato' ORDER BY ordem ASC"
Não testei mas acredito que seja isso mesmo.
Mas se vc precisa pode tentar listar assim:
"SELECT campo1, campo2, IF(id='OPCAO_SELECIONADA', 0, 1) AS ordem FROM campeonatos WHERE id='$id_campeonato' ORDER BY ordem ASC"
Não testei mas acredito que seja isso mesmo.