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

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

[ Hits: 16.230 ]

 


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

Enviando parâmetros para o Google e gravando o resultado em banco

Otimizando conexões entre PHP e MySQL

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

Descobrir a senha do PHPMyAdmin

Instalar Apache, PHP, MySQL e PostgreSQL no Ubuntu Linux 8.10

  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts