Preenchendo um select com dados do MySQL

Categoria: Programação PHP 19 de de 2009


Preencher um select/combobox não é uma tarefa muito difícil como talvez possa parecer, mas é claro, necessita de um conhecimento prévio da linguagem PHP.

No arquivo conn.php estabelecemos a conexão com a base de dados MYSQL, para prencher com dados o select/combobox. O arquivo cria a conexão com o MYSQL, cria o banco de dados que será utilizado nos exemplos, cria a tabela e preenche com alguns dados.

Observe que você pode fazer tudo isso utilizando a interface do phpmyadmin. Apenas a conexão com o banco de dados é importante. você pode resumir seu arquivo a isso:

conn.php


#estabelecemos conexão com o banco de dados
mysql_connect('localhost','root','') or die(mysql_error());

#seleciona o banco de dados
mysql_select_db('banco_exemplo') or die(mysql_error());

Mas caso queira criar seu banco e tabela via script, apenas altere o hostname, usuário e senha de acesso ao MYSQL.

conn.php


#estabelecemos conexão com o banco de dados
mysql_connect('localhost','root','') or die(mysql_error());

#criamos o banco de dados atraves do script php
$create_base = mysql_query("CREATE DATABASE IF NOT EXISTS banco_exemplo;") or die(mysql_error());
#seleciona o banco de dados
mysql_select_db('banco_exemplo') or die(mysql_error());

if($create_base) {

 #criamos a tabela no banco de dados
 mysql_query("CREATE TABLE IF NOT EXISTS produto (
 id INT(11) AUTO_INCREMENT,
 descricao VARCHAR(100) NOT NULL,
 preco FLOAT NOT NULL,
 PRIMARY KEY(id)
 );") or die(mysql_error());

 #verifica se existe registros no banco
 $query = mysql_query("SELECT id, descricao, preco FROM produto");

 #se não existir registros então insere os valores abaixo
 if(empty($query)) {
 #insere alguns dados para os exemplos
 mysql_query("
 INSERT INTO produto(descricao, preco) VALUES
 ('Notebook', '2800'),
 ('Nobreak', '800'),
 ('Roteador Wireless', '180');
 ") or die(mysql_error());
 }
}


echo 'O Banco e a tabela já foram criados.';

No arquivo index.php, logo abaixo, foi criado o formulário com o select/combobox para receber os dados do MYSQL.

  1. Logo no início do script, incluímos o arquivo conn.php de conexão com o MYSQL.
  2. Na função mysql_query() passamos a string SQL de seleção de dados no banco e atribuímos o valor retornado para a variável $query.
  3. E através da função mysql_fetch_array() criamos um array com os dados da varável $query.
  4. Por fim, percorremos o array $prod apresentando cada registro dentro do select/combobox.

index.php

<?php
#chama o arquivo de configuração com o banco
require 'conn.php';

#seleciona os dados da tabela produto
$query = mysql_query("SELECT id, descricao, preco FROM produto");


# abaixo montamos um formulário em html
# e preenchemos o select com dados
?>
<form name="produto" method="post" action="">
<label for="">Selecione um produto</label>
<select>
<option>Selecione...</option>

<?php while($prod = mysql_fetch_array($query)) { ?>
<option value="<?php echo $prod['id'] ?>"><?php echo $prod['descricao'] ?></option>
<?php } ?>

</select>
</form>

 

Espero que tenham entendido o processo de preenchimento de um select/combobox.

Caso tenham alguma dúvida sobre isso ou aquilo, não hesitem em perguntar. Responderei diretamento ou criando um novo artigo abordando as novas dúvidas

Até a próxima!

Compartilhe este conteúdo

Comentários

leo alves | 06/01/2012 - 13:29:31
leo alves
eh uma coisa simples, mas depois de horas criando linhas e mais linhas de código esse seu post salvou minha mente.
obrigado!
Stan | 16/11/2010 - 21:19:34
Stan
Parabéns pelo artigo, mas gostaria de saber caso eu queira passar o resultado da combobox para outro formulario como eu poderia fazer. Obrigado.
Resposta do Autor: Se o método de envio for POST, você poderá pegar com $_POST['nome_do_campo_de_origem'] e colocar como valor do campo de destino no outro formulário. Ex: value="".$_POST['nome_do_campo_de_origem']."" Se os dois formulários estiverem na mesma página, então só deixar o action do form vazio para enviar os valores para mesma página.
Alexandre | 12/11/2010 - 11:47:11
Alexandre
Muito bom teu script, me ajudou muito, mas eu tenho outra duvida: usando seu script, com eu faria para devolver a 3 input os dados do item selecionado no combo? Se puder ajudar agradeco muito.
Resposta do Autor: Alexandre, isso normalmente é feito com jquery ou utilizando a variável $_POST do PHP. O artigo Pegando o valor do input talvez esclareça sua dúvida, veja também Preenchendo um select com dados de outro select. Se não esclarecer, comenta aqui ou me manda um email que farei um artigo sobre isso.
junior | 24/08/2010 - 03:16:37
junior
Concerteza ajudou muito meu velho , valeu pelo tuto ^^
Comentar
Comentário
Digite os números da imagem ao lado
captcha