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.231 ]

 


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

PHP com suporte a PostgreSQL

mysql_num_fields e mysql_field_name no PHP

Como ver a saída de qualquer comando MySQL no PHP

Suporte PHP5 oci8 no Oracle 11g - Ubuntu 8.04 Server

Compilando o PHP4 com acesso ao banco Interbase / Firebird no Conectiva 9

  

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