Ir para conteúdo

POWERED BY:

Arquivado

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

Kabbalista

[Resolvido] Drop Box povoado por MySQL

Recommended Posts

Pessoal, esstou construindo um script e preciso povoar um drop box com dados de uma tabela MySQL. Meu código está assim:

 

<?
$sql_drop="SELECT id, nome FROM albuns_musica"; 
$resultado_drop=mysql_query($sql); 

$opcoes_drop=""; 

while ($row=mysql_fetch_array($resultado_drop)) { 

    $id_drop=$row["id"]; 
    $objeto_drop=$row["objeto"]; 
    $opcoes_drop.="<option value=\"$id\">".$objeto.'</option>'; 
}
?>
<select name=id>
<option value=0>Escolha
<? echo $opcoes_drop?>
</select>

Meu problema é que, como o id na tabela é um valor autoincrement e eu tenho vários deletes por dia, muitas vezes os valores não seguem uma ordem exata. Um tem ID 4 o outro pula para 7! Então eu queria não depender deste ID para organizar as options no dropbox. Por exemplo, que ele adicionasse um novo option para cada valor do array. Só que não sei como fazer. Alguem pode ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na linha de composição do HTML, $objeto não está definida. Acho que você quis dizer $objeto_drop.

 

Fora isso, já pensou em usar o comando sql

 order by
?

 

Assim você poderia, sei lá, ordenar por nome.

 

Ah, tinha me esquecido... a linha

 $opcoes_drop=""; 

não é necessária. É uma vantagem do php.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na linha de composição do HTML, $objeto não está definida. Acho que você quis dizer $objeto_drop.

 

Fora isso, já pensou em usar o comando sql

 order by
?

 

Assim você poderia, sei lá, ordenar por nome.

 

Ah, tinha me esquecido... a linha

 $opcoes_drop=""; 

não é necessária. É uma vantagem do php.

 

Bem, eu deixei o código assim:

 

<?
$sql_drop="SELECT id, nome FROM albuns_musica ORDER BY id"; 
$resultado_drop=mysql_query($sql_drop);
$opcoes_drop="";  

while ($row=mysql_fetch_array($resultado_drop)) { 

    $id_drop=$row["id"]; 
    $objeto_drop=$row["nome"]; 
    $opcoes_drop.="<option value=\"$id_drop\">".$objeto_drop.'</option>'; 
}
?>
<select name="album">
<option value="0">Escolha
<? echo $opcoes_drop?>
</select>

E funcionou! Quanto a linha que você disse não necessária, sem ela o script gerava erro :(

 

Obrigado pela ajuda ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

que tal:

while ($row=mysql_fetch_assoc($resultado_drop)) {
    $opcoes_drop.='<option value="'.$row['id'].'">'.$row['nome'].'</option>'; 
}
^_^

 

as linhas de atribuição dentro do while é que não eram necessárias.

E como você não usa o retorno numérico, o _assoc(), será mais rápido para você.

 

Apenas achei legal citar essa 'melhoria', pois vejo muita gente fazendo da forma que você fez, sem entender o motivo, logo concluo, que estão ensinando dessa forma por ai(com atribuições desnecessárias, e concatenações complicadas), apesar dela não ser a melhor.

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.