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.