Criando um formulário de busca complexo com PHP e MySQL
Bom, esse tutorial visa a explicação de um tutorial simples, que é de muito boa utilidade.
Fazendo o Formulário em HTML -- esse passo é simples para todos:
Ai está o formuláario, com um campo de texto onde o usuário vai digitar o nome da busca e 3 categorias, onde vai ficar especificado o produto que ele deseja.
Agora vamos para o PHP, você terá que criar uma tabela do banco de dados:
Ai está um exemplo simples, voçê poderá melhorá-lo depois. Vamos agora para o php.
Busca.php:
Pronto ai está, agora é so aperfeiçoar.
Testado, funciona.
Fazendo o Formulário em HTML -- esse passo é simples para todos:
<form action="Busca.php" method="post"> <input type="text" name="palavra" /> <select name="categoria"> <option value="cadeiras">Cadeiras</option> <option value="mesa">Mesas</option> <option value="bancos">Bancos</option> </select> <input type="submit" Value="Buscar" /> </form>
Ai está o formuláario, com um campo de texto onde o usuário vai digitar o nome da busca e 3 categorias, onde vai ficar especificado o produto que ele deseja.
Agora vamos para o PHP, você terá que criar uma tabela do banco de dados:
CREATE TABLE `moveis` ( `id` tinyint(4) NOT NULL auto_increment, `nome` varchar(30) NOT NULL default '', `categoria` varchar(20) NOT NULL default '', `preco` tinyint(4) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ; INSERT INTO `moveis` VALUES (1, 'madeira', 'mesa', 100); INSERT INTO `moveis` VALUES (2, 'metal', 'mesa', 127); INSERT INTO `moveis` VALUES (3, 'cimento', 'banco', 50); INSERT INTO `moveis` VALUES (4, 'madeira', 'cadeira', 127);
Ai está um exemplo simples, voçê poderá melhorá-lo depois. Vamos agora para o php.
Busca.php:
<?php $hostdb = "localhost";// Geralmente Localhost $userdb = "USUARIO";//usuário do seu banco de dados $passdb = "SENHA";// senha do banco de dados $tabledb = "TABELA_DO_BANCO";// tabela do banco de dados $conecta = mysql_connect($hostdb, $userdb, $passdb) or die (mysql_error()); @mysql_select_db($tabledb, $conecta) or die ("Erro ao conectar com o banco de dados"); $busca = $_POST['palavra'];// palavra que o usuario digitou $categoria = $_POST['categoria']; //categoria que o usuario deseja $busca_query = mysql_query("SELECT * FROM moveis WHERE nome LIKE '%$busca%' AND categoria = '$categoria'")or die(mysql_error());//faz a busca com as palavras enviadas if (empty($busca_query)) { //Se nao achar nada, lança essa mensagem echo "Nenhum registro encontrado."; } // quando existir algo em '$busca_query' ele realizará o script abaixo. while ($dados = mysql_fetch_array($busca_query)) { echo "Id do Produto: $dados[id]<br />"; echo "Nome do Produto: $dados[nome]<br />"; echo "Preço do Produto: $dados[preco] Reais<br />"; echo "Categoria do Produto: $dados[categoria]<br />"; echo "<hr>"; } ?>
Pronto ai está, agora é so aperfeiçoar.
Testado, funciona.
Muito bom! Índices do tipo Full-Text, no SQL Server, são utilizados para otimizar as buscas textuais. Por meio dele é possível apresentar para o usuário resultados semanticamente mais adequados à sua consulta, bem como ordenar esses resultados por relevância. http://www.devmedia.com.br/o-que-usamos-na-busca-da-devmedia/38028
13/03/2017 3:05pm
(~7 anos atrás)
Eu queria criar um site, acho que algo similar ao que foi explicado aqui, onde os usuários pudessem fazer um cadastro no site, e cadastrar livros, e fazer pesquisas através do nome do livro, ou autor, e retornar uma outra página com as consultas dos livros cadastrados, algo tipo o google. E usar um banco de dados para armazenar as informações.
Só não sei por onde começar, também não sei qual linguagem(s) seria apropriada para a empreitada.
PHP é a melhor linguagem para fazer isto?
Se não,qual linguagem é melhor, e qual banco usar.
Se puderem me indicar livros também será de grande ajuda.
Desde já muito obrigado.
Só não sei por onde começar, também não sei qual linguagem(s) seria apropriada para a empreitada.
PHP é a melhor linguagem para fazer isto?
Se não,qual linguagem é melhor, e qual banco usar.
Se puderem me indicar livros também será de grande ajuda.
Desde já muito obrigado.
24/10/2011 5:24pm
(~13 anos atrás)
ola pessoal...
trabalho em uma empresa e preciso fazer uma formulario de contato e estou precisando fazer um formulario e naum tenho nenhuma noção de php
se alguem puder me ajudar eu agradeço
a minha dificuldade esta e validar o formulário eu sei fazer tudo o formulario elaborar os campo mas a hora que eu clicar em(submit) que é enviar naum esta enviando
se alguem puder me ajudar eu ja agradeço
trabalho em uma empresa e preciso fazer uma formulario de contato e estou precisando fazer um formulario e naum tenho nenhuma noção de php
se alguem puder me ajudar eu agradeço
a minha dificuldade esta e validar o formulário eu sei fazer tudo o formulario elaborar os campo mas a hora que eu clicar em(submit) que é enviar naum esta enviando
se alguem puder me ajudar eu ja agradeço
01/09/2009 1:26pm
(~15 anos atrás)
ismael disse:
qero que apareça uma mensagem tipo "escolha uma categoria " qndo o select não for modificado como faço ?
Ismael, respondendo sua pergunta:
[code]if(empty($categoria)){
echo "<meta HTTP-EQUIV='Refresh' CONTENT='0;URL=javascript: history.go(-1);'>"; // retorna para a pagina anterior
echo "<script type='text/javascript'>alert('Escolha uma categoria')</script>"; // escreve o alerta.
[/code]
qero que apareça uma mensagem tipo "escolha uma categoria " qndo o select não for modificado como faço ?
Ismael, respondendo sua pergunta:
[code]if(empty($categoria)){
echo "<meta HTTP-EQUIV='Refresh' CONTENT='0;URL=javascript: history.go(-1);'>"; // retorna para a pagina anterior
echo "<script type='text/javascript'>alert('Escolha uma categoria')</script>"; // escreve o alerta.
[/code]
15/07/2009 3:24pm
(~15 anos atrás)
Antes de fazer o query da busca voce pode botar um
if(empty($categoria)){
echo "<meta HTTP-EQUIV='Refresh' CONTENT='0;URL=javascript: history.go(-1);'>"; // retorna para a pagina anterior
echo "<script type='text/javascript'>alert('Selecione uma categoria')</script>"; // escreve o alerta.
}else{
resto do codigo...
}
Mais ou menos isso.
if(empty($categoria)){
echo "<meta HTTP-EQUIV='Refresh' CONTENT='0;URL=javascript: history.go(-1);'>"; // retorna para a pagina anterior
echo "<script type='text/javascript'>alert('Selecione uma categoria')</script>"; // escreve o alerta.
}else{
resto do codigo...
}
Mais ou menos isso.
12/06/2009 6:33pm
(~15 anos atrás)
qero que apareça uma mensagem tipo "escolha uma categoria " qndo o select não for modificado como faço ?
12/06/2009 4:28pm
(~15 anos atrás)
Foi mal pelo segundo comentario seguido ,so agora vo a parte do categoria.
--Cézar Ayran--
Não sei oq ue aconteceu mais nao foi feita a quebra de linha na parte da query de busca, se voce selecionar e arrastar o mouse por cima da query vera o resto do script.
--Cézar Ayran--
Não sei oq ue aconteceu mais nao foi feita a quebra de linha na parte da query de busca, se voce selecionar e arrastar o mouse por cima da query vera o resto do script.
10/06/2009 8:41am
(~15 anos atrás)
--Cézar Ayran--
Na verdade eu nao disse que o script era complexo.
Eu disse que a busca era complexa, geralmente se usar somente um campo ara fazer buscar dentro do site, porém ai ficou uma busca com um campo e um select para categorias.
--Romário Machado--
É, acabei me confundindo, tenho a mania de chamar o banco de tabela, Confusao aprendida com localhost ¬¬.
--Diego--
Sim deixei o mais simpels possivel, poderia ter colocado htmlspecialchars , addslashes e (string)/(int), so que quis deixar um pouco mais leve. Era para ser um tutorial iniciante.
Na verdade eu nao disse que o script era complexo.
Eu disse que a busca era complexa, geralmente se usar somente um campo ara fazer buscar dentro do site, porém ai ficou uma busca com um campo e um select para categorias.
--Romário Machado--
É, acabei me confundindo, tenho a mania de chamar o banco de tabela, Confusao aprendida com localhost ¬¬.
--Diego--
Sim deixei o mais simpels possivel, poderia ter colocado htmlspecialchars , addslashes e (string)/(int), so que quis deixar um pouco mais leve. Era para ser um tutorial iniciante.
10/06/2009 8:37am
(~15 anos atrás)