Geração automática de menu drop down com banco de dados em PHP

Publicado por Evângelus Espolador em 29/12/2004

[ Hits: 14.980 ]

 


Geração automática de menu drop down com banco de dados em PHP



A geração de menus tipo drop down (selects) com dados de uma tabela do banco pode ser muito fácil se for utilizada a função a seguir. O banco pode ser o MySQL, o PostgreSQL ou outro qualquer.

Veja o código:

function select($nome, $con, $cod, $desc, $table, $order, $comp)
    {
        $sql = "SELECT $cod, $desc FROM $table ORDER BY $order";
        $res = pg_exec($con, $sql);
        echo "<select name=".$nome." size = 1>";
        for ($i=0;$i<pg_num_rows($res);$i++)
        {
            $rs = pg_fetch_array($res,$i);
             if ($rs[$cod] == $comp)
                echo "<option value=".$rs[$cod]."     selected>".$rs[$desc]."</option>";
            else
                echo "<option value = ".$rs[$cod].">".$rs[$desc]."</option>";    
        }
        echo "</select>";
    }

Os parâmetros:
  • $nome -> nome do select no código html;
  • $con -> conexão com o banco;
  • $cod -> campo código da tabela usada no 'Value' do select;
  • $desc -> campo descrição da tabela que vai aparecer como opção;
  • $table -> nome da tabela fonte dos dados;
  • $order -> campo pelo qual será ordenado o resultado;
  • $comp -> variável referência para tornar um valor selecionado (em pesquisas);

Para chamar no código HTML:

select('s_estcivil', $con, 'estciv_cod', 'estcivi_desc', 'estcivil','estciv_cod',$s_estcivil);

Pronto. Agora é só chamar a função e passar os parâmetros. Parece que não, mas quebra um galhão.

[]'s
Espolador

Outras dicas deste autor

Select com extração de dia, mês ou ano no PostgreSQL

Leitura recomendada

Instalação e configuração Apache2 + PHP + MySQL + PostgreSQL

Otimizando conexões entre PHP e MySQL

Configurando o phpMyAdmin para acessar o MySQL remotamente

Mensagem de erro: "PHP Fatal error: Call to undefined function pg_connect()" [Resolvido]

PHP com suporte a PostgreSQL

  

Comentários
[1] Comentário enviado por removido em 30/12/2004 - 15:12h

nao faltou um :
pg_freeresult($res);

depois do echo "</select>";

?
para liberar a memoria usada pelo pg_exec() ?

[2] Comentário enviado por Eduardo Neres em 03/01/2005 - 18:21h

Não consegui usar direito... Mas meu irmão descobriu um erro, não me disse onde, mas robou beleza.
Valeu pela Dica...



Contribuir com comentário