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.)