Pular para o conteúdo

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

Dica publicada em PHP / Banco de Dados
Evângelus Espolador espola
Hits: 16.848 Categoria: PHP Subcategoria: Banco de Dados
  • Indicar
  • Impressora
  • Denunciar

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

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

Mostrar os campos de uma tabela do PostgreSQL com PHP

Portal TechRoot

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

Ubuntu + Apache2 + MySQL + PHP5

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

#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

Entre na sua conta para comentar.