0

Popular select com dados vindos de duas tabelas. Trazer a opção que foi gravada no banco como primeira no select.

criado por Souza em 09/11/2011 3:01pm
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.
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>";
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.

Lista de Respostas:

+1
10/11/2011 10:37am
(~13 anos atrás)
BOZO respondeu:
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.

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)