Ir para conteúdo
Fórum Script Brasil
  • 0

Popular Controle Select com PDO::FETCH_ASSOC


Joaci Desidério

Pergunta

Gostaria de obter ajuda como popular controle (html) Select com dados vindos do Banco de Dados, através do PDO::FETCH_ASSOC.

Como estou trabalhado orientado a objetos, tenho uma classe que retorna um array, com os dados de minha tabela. Consigo listar esses dados com o print_r ou com o var_dump, porém ao tentar carregar esse dados no elemento <option> do controle <select> do html, só retorna o primeiro registro.

Vejam o código:

classe membro

public static function carregaestado(){
$conect = conexao::conn();
try{
$sql = $conect->prepare("SELECT * FROM estado");
$sql->execute();
if($sql->rowCount()>0):
$dados = $sql->fetchAll(PDO::FETCH_ASSOC);
return $dados;
else:
return false;
endif;
}
catch (PDOException $e){
echo "erro ao carregar estados do banco de dados!".$e->getMessage();
}

controle select

<select name="uf" id="uf" class="impcadastro-D">

<?php
foreach (membro::carregaestado() as $dados_empresa){
$codigo = $dados_empresa['IDestado'];
$estado = $dados_empresa['ESTADO'];
?>
<option value="<?php echo $codigo; ?>"><?php echo $estado."<br/>" ?></option>;
<?php }
?>
</select>
Onde eu estou errando?
agradeceria muito o apoio de algum programador mais experiente.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
Vou colocar a section e form inteiro, em que encontra-se o controle select, pois quando uso o controle fora do form e da section a consulta retorna o resultado esperado.
Assim acho que deve ter alguma coisa relacionado a essas tags html.
<section id="cadastro">
<form action="" method="post" >
<fieldset>
<legend>Faça seu Cadastro Grátis!!!</legend>
<section id="formcadastro-E">
<label class="label-E">Nome:</label><input type="text" class="impcadastro-E" name="nome" required="" autofocus=""/>
<label class="label-E">Email:</label><input type="text" class="impcadastro-E" name="email" required=""/>
<label class="label-E">Empresa:</label><input type="text" class="impcadastro-E" name="empresa"/>
<label class="label-E">Formação:</label><input type="text" class="impcadastro-E" name="IDformacao" required=""/>
<label class="label-E">Cidade:</label><select name="IDcidade" id="cidade" class="impcadastro-E" required="">
<option value="">Selecione a Cidade</option>
</select>
<label class="label-E">Nascimento:</label><input type="date" class="impcadastro-E" name="nascimento" required=""/>
</section>
<section id="formcadastro-D">
<label class="label-D">Sobrenome:</label><input type="text" class="impcadastro-D" name="sobrenome" required=""/>
<label class="label-D">Senha:</label><input type="password" class="impcadastro-D" name="senha" required=""/>
<label class="label-D">Profissao:</label><input type="text" class="impcadastro-D" name="IDocupacao" required=""/>
<label class="label-D">Telefone:</label><input type="tel" class="impcadastro-D" name="telefone" required=""/>
<label class="label-D">Estado:</label>
<select name="uf" id="uf" class="impcadastro-D">
<?php
foreach (membro::carregaestado() as $dados_empresa){
$codigo = $dados_empresa['IDestado'];
$estado = $dados_empresa['ESTADO'];
?>
<option value="<?php echo $codigo; ?>"><?php echo $estado."<br/>" ?></option>;
<?php }
?>
</select>
</section>
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...