Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17385
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Select para consulta do MySQL com opções

30-03-2007 10:45

Esse é um código para você que precisa ter um select, que ao selecionar umas das opções, mostre as sub-categorias para aquela opção, tudo buscado no MySQL.

Esse script que vou passar abaixo, vou passar toda uma estrutura de exemplo para que você teste e faça as alterações necessárias.

MYSQL PARA O SCRIPT
Crie um banco de dados no mysql: login, senha e banco de dados, use a seguinte estrutura:

# phpMyAdmin MySQL-Dump # version 2.2.3 # http://phpwizard.net/phpMyAdmin/ # http://phpmyadmin.sourceforge.net/ (download page) # # Servidor: localhost # Tempo de Generação: Mar 30, 2007 at 10:35 AM # Versão do Servidor: 3.23.47 # Versão do PHP: 4.1.1 # Banco de Dados : `exemplo` # -------------------------------------------------------- # # Estrutura da tabela `categoria` # CREATE TABLE categoria ( codigo INT(11) NOT NULL AUTO_INCREMENT, descricao VARCHAR(50) NOT NULL DEFAULT '', PRIMARY KEY (codigo) ) TYPE=MyISAM; # # Extraindo dados da tabela `categoria` # INSERT INTO categoria (codigo, descricao) VALUES (1, 'Produtos 1'), (2, 'Produtos 2'), (3, 'Produtos 3'); # -------------------------------------------------------- # # Estrutura da tabela `sub_categoria` # CREATE TABLE sub_categoria ( codigo INT(11) NOT NULL AUTO_INCREMENT, cod_categoria INT(11) NOT NULL DEFAULT '0', descricao VARCHAR(50) NOT NULL DEFAULT '', PRIMARY KEY (codigo) ) TYPE=MyISAM; # # Extraindo dados da tabela `sub_categoria` # INSERT INTO sub_categoria (codigo, cod_categoria, descricao) VALUES (1, 1, 'Arroz'), (2, 1, 'Feijão'), (3, 2, 'Pera'), (4, 2, 'Maça'), (5, 3, 'Alface'), (6, 3, 'Repolho');

Essa tabela é para exemplo desse script.

Abaixo segue o script todo detalhado para melhor entendimento:

<?php include("conecta.php");  ?> <script> team = new Array( <?php // ordenamos os dados por descricao $sql="select * from categoria order by descricao"; $sql_result=mysql_query($sql, $conecta); echo mysql_error(); $num=mysql_numrows($sql_result); while ($row=mysql_fetch_array($sql_result)){ $conta=$conta+1; $cod_categoria=$row["codigo"]; echo "new Array(\n"; $sub_sql="select * from sub_categoria where cod_categoria='$cod_categoria'"; $sub_result=mysql_query($sub_sql, $conecta); $num_sub=mysql_numrows($sub_result); if ($num_sub>=1){ echo "new Array(\"Todas\", 0),\n"; while ($rowx=mysql_fetch_array($sub_result)){ // valor do "option value" $codigo_sub=$rowx["codigo"]; // valor da "descrição do option" $sub_nome=$rowx["descricao"]; $conta_sub=$conta_sub+1; if ($conta_sub==$num_sub){ echo "new Array(\"$sub_nome\", $codigo_sub)\n"; $conta_sub=""; } else { echo "new Array(\"$sub_nome\", $codigo_sub),\n"; } } } else { echo "new Array(\"Nenhum\", 0)\n"; } if ($num>$conta){ echo "),\n"; } } echo ")\n"; echo ");\n"; ?> function fillSelectFromArray(selectCtrl, itemArray, goodPrompt, badPrompt, defaultItem) { var i, j; var prompt; for (i = selectCtrl.options.length; i >= 0; i--) { selectCtrl.options[i] = null; } prompt = (itemArray != null) ? goodPrompt : badPrompt; if (prompt == null) { j = 0; } else { selectCtrl.options[0] = new Option(prompt); j = 1; } if (itemArray != null) { for (i = 0; i < itemArray.length; i++) { selectCtrl.options[j] = new Option(itemArray[i][0]); if (itemArray[i][1] != null) { selectCtrl.options[j].value = itemArray[i][1]; } j++; } selectCtrl.options[0].selected = true; } } </script> <form action="?envia=ok" name="form" method="POST"> <select name="categoria" onChange="fillSelectFromArray(this.form.sub_categoria, ((this.selectedIndex == -1) ? null : team[this.selectedIndex-1]));"> <option>Escolha uma Categoria</option> <?php // ordenamos o select por descrição $sql="select * from categoria order by descricao"; $sql_result=mysql_query($sql, $conecta); echo mysql_error(); while ($row=mysql_fetch_array($sql_result)){ $cod_categoria=$row["codigo"]; $desc_categoria=$row["descricao"]; ?> <option value="<?echo $cod_categoria;?>"><?echo $desc_categoria;?></option> <? } ?> </select> <select size="3" name="sub_categoria"> <option>..</option> </select> <input type="submit"> </form>

Provavelmente, você vai enviar esses dados para uma consulta, essa consulta vai ser com base no formulário acima.

Então, de acordo com a linha no form action: ?envia=ok, veja como exibir o produto buscado:
Esse código abaixo pode ficar no final da linha do form para exibir o resultado no mesmo documento, após o envio.

<?php if($envia=="ok") { $sub_categoria = $_POST['sub_categoria']; $categoria = $_POST['categoria']; $selec = "SELECT * FROM sub_categoria WHERE codigo='$sub_categoria' AND cod_categoria='$categoria'"; $exec = mysql_query($selec, $conecta) or die(mysql_error()); while($dados=mysql_fetch_array($exec)) { echo "".$dados['descricao'].""; } } ?>

0
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum :rock:

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado