Dodo15 0 Denunciar post Postado Janeiro 7, 2011 Bom Dia Eu fiz um formulario de pesquisa e agora qero colocar categorias de pesquisa nele e cada categoria que seleciono iria buscar em um banco de dados... Ex: eu tenho o codigo: <select name="" id=""> <option value="">Tinta</option> <option value="">Elétrica</option> <option name="" id="">Ferragens</option> <option name="" id="">Hidraulica</option> <option name="" id="">Promoção</option> </select> Qando eu selecionar tinta vai buscar na tabela "tinta", quando eu seleciono eletrica vai buscar na tabela dentro da database busca "Eletrica"... Os codigos que eu estou usando sao esses: busca.php <?php $host = 'localhost'; $user = 'root'; $pass = ''; $con = mysql_connect($host,$user,$pass); $db = 'busca'; mysql_select_db($db,$con) or print mysql_error(); mysql_select_db("busca"); $criterio = $_POST['busca']; $_pagi_sql = "SELECT * FROM busca WHERE descricao LIKE '%$criterio%'"; $_pagi_cuantos = 10; $_pagi_nav_anterior = "<< Anterior"; $_pagi_nav_siguiente = "Próxima >>"; $_pagi_nav_primera = ""; $_pagi_nav_ultima = ""; $_pagi_nav_estilo = "Paginacao"; include("paginator.class.php"); while ($campo = mysql_fetch_assoc($_pagi_result)){ ?> <div id="pai"> <div id="codigo"><?php echo $campo['id']; ?></div> <div id="descricao"><?php echo $campo['descricao']; ?></div> <div id="emb"><?php echo $campo['emb']; ?></div> <div id="un"><?php echo $campo['un']; ?></div> <div id="preco">R$<?php echo $campo['preco']; ?></div> </div> <?php } echo $_pagi_navegacion; ?> <br /> <a href="index.php">VOLTAR</a> </body> </html> Index.php <form method="POST" action="busca.php"> <input type="text" name="busca" size="20"> <select name="" id=""> <option value="">Tinta</option> <option value="">Elétrica</option> <option name="" id="">Ferragens</option> <option name="" id="">Hidraulica</option> <option name="" id="">Promoção</option> </select> <input type="submit" value="Buscar" name="ok"> </form> Vlw Compartilhar este post Link para o post Compartilhar em outros sites
cassiano óliver 1 Denunciar post Postado Janeiro 7, 2011 * Pegue os dados do FORM * Verifique qual a opção escolhida e de acordo com a opção, altere na SQL a tabela a ser pesquisada. EX: $tabela = $_POST['name_campo_select']; switch($tabela) { case 'tintas': $tabela = 'tintas'; break; case 'outra_tabela': $tabela = 'outra_tabela'; break; } Mais ou menos isso... Compartilhar este post Link para o post Compartilhar em outros sites
CrY 1 Denunciar post Postado Janeiro 7, 2011 nesse caso a propriedade name do select tem que ser busca vou te mostra um exemplo bem basico <form method="post" action="#" name="teste1"> <select name="busca"> <option value="tinta">Tinta</option> <option value="eletrica">Elétrica</option> <option value="ferragens" id="">Ferragens</option> <option value="hidraulica" id="">Hidraulica</option> <option value="promocao" id="">Promoção</option> </select> <input type="submit" name="mostrar" value="Mostrar" /> <?php if(isset($_POST['mostrar'])==1){ $tabela = $_POST['busca']; echo "$tabela";} ?> </form> foi só pra dar uma luz captou ? o que eu quis tentar passar pra voce é que o valor do select quando selecionado é pego pela propriedade name do select e vai pegar o value do campo selecionado exemplo se o cara escolher tinta a variavel vai ter o valor de tinta logo na query só dar o comando certo mysql_query("select * from $valor"); //vai selecionar tudo da tabela que ta selecionado o select! deu pra entender? Compartilhar este post Link para o post Compartilhar em outros sites
Ronny Santana 0 Denunciar post Postado Janeiro 7, 2011 <select name="categoria" id=""> <option value="tinta">Tinta</option> <option value="eletrica">Elétrica</option> <option value="ferragens">Ferragens</option> <option value="hidraulica">Hidraulica</option> <option value="promocao">Promoção</option> </select> $criterio = $_POST['busca']; $categoria = $_POST['categoria']; $_pagi_sql = "SELECT * FROM busca WHERE descricao LIKE '%$criterio%' AND categoria=$categoria"; Mais antes de fazer a busca é bom fazer uma validação pra ver se não esta vazio if (!empty($criterio) && !empty($categoria)) { // executar busca } else { // dá um header localtion para o formulario } Vlw Compartilhar este post Link para o post Compartilhar em outros sites
André Severino 3 Denunciar post Postado Janeiro 7, 2011 Se eu entendi bem, você quer que qnd selecione a opção Tinta, Eletrica ele pesquise nas respectivas tabelas? Se for este o caso você faz assim no value voce insere o nome da tabela, e depois no busca.php você recebe o valor de select e transforma em um campo para pesquisar a tabela, por ex. Na opção tinta você tem a tabela tbTinta, na Eletrica a tabela chama-se tbEletrica, etc... Assim você atualiza dinamicamente a instrução SQL sem muitas complicações e etc... Abaixo um exemplo <select name="txtTabela"> <option value="tbTinta">Tinta</option> <option value="tbEletrica">Elétrica</option> .... </select> na pagina onde você recebe os valores voce faz assim <?php ... $tbNome = $_POST['txtTabela']; $criterio = $_POST['busca']; $_pagi_sql = "SELECT * FROM `{$tbNome}` WHERE descricao LIKE '%$criterio%'"; $_pagi_cuantos = 10; ... Compartilhar este post Link para o post Compartilhar em outros sites
Dodo15 0 Denunciar post Postado Janeiro 7, 2011 Deu certo :D Já ta funcionando... Mas como eu faço pra mostrar na minha index todos os produtos dessa tabelas? Compartilhar este post Link para o post Compartilhar em outros sites
CrY 1 Denunciar post Postado Janeiro 7, 2011 $sql = mysql_query(select * from tabela1); $sql2 = mysql_query(select * from tabela2); $sql3 = mysql_query(select * from tabela3); while($tabela1 = mysql_fetch_array($sql)){ //tabela tinta $nome_tinta = $tabela1['nome']; } while($tabela2 = mysql_fetch_array($sq2)){ //tabela hidraulicos $nome_hidraulicos = $tabela2['nome']; }while($tabela3 = mysql_fetch_array($sql3)){ //tabela produtos $nome_produtos = $tabela3['nome']; } ficaria algo mais ou menos assim com coloquei ou joga tudo em array ou entao usa o case e break Compartilhar este post Link para o post Compartilhar em outros sites
Dodo15 0 Denunciar post Postado Janeiro 7, 2011 Deu um problema... Eu estou usando esse codigo: <?php $host = 'localhost'; $user = 'root'; $pass = ''; $con = mysql_connect($host,$user,$pass); $db = 'busca'; mysql_select_db($db,$con) or print mysql_error(); mysql_select_db("busca"); $criterio = $_POST['busca']; $tbNome = $_POST['select']; $criterio = $_POST['busca']; $_pagi_sql = "SELECT * FROM `{$tbNome}` WHERE descricao LIKE '%$criterio%'"; $_pagi_cuantos = 10; // Itens por página // ESTES 5 ÚLTIMOS SÃO VALORES EXTRAS, NÃO PRECISA COLOCA-LOS A MENOS QUE QUEIRA ALTERAR NOME DA ESCRITA OU ADICIONAR ALGUMA CLASS A TAG QUE CONTERÁ A PAGINAÇÃO $_pagi_nav_anterior = "<< Anterior"; // Titulo texto link página anterior $_pagi_nav_siguiente = "Próxima >>"; // Titulo texto link próxima página $_pagi_nav_primera = ""; // Texto link primeira página $_pagi_nav_ultima = ""; // Texto link última página $_pagi_nav_estilo = "Paginacao"; // Classe para estilo css // Aqui incluimos a biblioteca que carregará todos os valores setados acima. include("paginator.class.php"); // While com a variavel especial $_pagi_result while ($campo = mysql_fetch_assoc($_pagi_result)){ ?> <div id="pai"> <div id="codigo"><?php echo $campo['id']; ?></div> <div id="descricao"><?php echo $campo['descricao']; ?></div> <div id="emb"><?php echo $campo['emb']; ?></div> <div id="un"><?php echo $campo['un']; ?></div> <div id="preco">R$<?php echo $campo['preco']; ?></div> </div> <?php } // Aqui ele exibe a paginação echo $_pagi_navegacion; ?> Quando eu vou passar para a outra pagina ele ta problema, fala que nao existe... oque posso fazer para resolver? Compartilhar este post Link para o post Compartilhar em outros sites
André Severino 3 Denunciar post Postado Janeiro 7, 2011 no lugar do action <form method="post" action="#" name="teste1"> insira o nome da pagina ou coloque um $_SERVER['PHP_SELF']; se for a msma pagina Compartilhar este post Link para o post Compartilhar em outros sites
Dodo15 0 Denunciar post Postado Janeiro 7, 2011 agora com esse action ele fica na mesma e nao aparece os resultados Compartilhar este post Link para o post Compartilhar em outros sites