Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

renatosilva94

Busca por categorias

Recommended Posts

Boa tarde, sou novo no fórum e tenho algumas duvidas em php e mysql, estou montando um site e tenho o seguinte menu a esquerda.

<div class="menuesq"> 
                
                    <img src="imagens/geralsite/logoSite.png" class="logosite">
                    
                    <ul class="empresas">
                        
                        
                             <li><a href="#"><img src=icones/menucategoria/SomEImagem.png class="icones">Som e Imagem</a></li>
                             <li><a href="#"><img src=icones/menucategoria/Salao.png class="icones">Salão</a></li>
                             <li><a href="#"><img src=icones/menucategoria/Fotografo.png class="icones">Fotografos</a> </li>
                             <li><a href="#"><img src=icones/menucategoria/Buffet.png class="icones">Buffet</a></li>
                             <li><a href="#"><img src="icones/menucategoria/DocesESalgados.png" class="icones">Doces e Salgados</a> </li>
                             <li><a href="#"><img src="icones/menucategoria/AluguelDeRoupas.png" class="icones">Aluguel de Roupas</a> </li>
                             <li><a href="#"><img src=icones/menucategoria/Lembranca.png class="icones">Lembranças</a> </li>
                             <li><a href="#"><img src="icones/menucategoria/AluguelDeLoucas.png" class="icones">Aluguel de Louças</a> </li>
                         
                    </ul>
                                    
                    
                </div>

porém preciso que ele efetua buscas na minha tabela categoria do banco de dados, sendo que as categorias estão exatamente iguais aos nomes. Minha duvida é como eu faço isso e como ficara a página que realizara as buscas , por exemplo buscaCategorias.php e ele irá verificar o id e mostrar uma tabela com as empresas que se encaixem em determinada categoria.

 

Quem puder me ajudar ficarei muito grato :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

dentro do html

vc pode usar um botao com caixa de texto

esse exemplo abaixo é igual a que uso. html
<div id ="pesquisar_2"> <form name="searchform" method="post" action="left-sidebar.php" />
<input type="text" name="buscar" placeholder="Digite o nome da Filial"> <p> <input type="submit" value="Buscar" /> </p>
</div>

criei a conexao com banco..

 

depois pra funcionar a pesquisa

 

usei um select dentro banco

 

 

ficou assim... dentro do proprio html usei php

<div id ="pesquisar_2"> <form name="searchform" method="post" action="left-sidebar.php" />
										 <input type="text" name="buscar" placeholder="Digite o nome da Filial"> <p> <input type="submit" value="Buscar" /> </p>
					</div>

	<br></br>
<?php
	$buscar=$_POST['buscar'];
	$sql = mysql_query ("SELECT * FROM contatobd WHERE nome LIKE '%".$buscar."%' OR filiais LIKE '%".$buscar."%' OR setor LIKE '%".$buscar."'");
	$row = mysql_num_rows($sql);
	if ($row > 0){
		while ($linha = mysql_fetch_array($sql)){
			$novavariavel++;
			<table>
			
			
			$nome = $linha['nome'];
			$filiais = $linha ['filiais'];
			$setor = $linha ['setor'];
			$numero_cel = $linha ['numero_cel'];
			$nextel = $linha ['nextel'];
			
									
			echo"<strong>Nome: </strong>".@$nome;
			echo "<strong>Filiais: </strong>".@$filiais;
			echo "<strong>Setor: </strong>".@$setor;
			echo "<strong>Número de Celular </strong>".@$numero_cel;
			echo "<strong>Nextel: </strong>".@$nextel;
			echo "<br /br><br />";
			
			
		}
			} else {
		echo"Nenhum resultado encontrado";
		
	}
	
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara e muito fácil você criar uma pagina chamada categoria.php e dentro dela você coloka td que você quiser que apareça em html ai vem a parte do php você tera que passar o valor por get enato ficaria assim:

 

<?php

//faz conexão com o banco

require"";

 

// atribui o get como cat

$categoria = $_GET['cat'];

 

//seleciona o banco e oque ele ira chamar que no caso seria a categoria mas lembre você tem q ter uma coluna chamada //categoria no seu banco de dados

 

$sql = mysql_query("SELECT * FROM nome_tablea WHERE categoria = '$categoria'");

 

//ai e so fazer o while

 

while($aux = mysql_fetch_assoc($sql)){

//aki você coloca o conteúdo e como os produtos irai aparecer tipo

//lembrar que a variável nome recebe a variável aux que por sua vez recebera o atributo do banco nesse caso o nome

$nome = $aux['nome'];

 

//dps e so dar print e como ira aparecer os produtos

 

print"<p>$nome</p>";

 

 

}

 

?>

 

 

depois você vai na sua pagina principal onde esta:

// supondo que você atribuiu essa categoria como som-e-img ficara assim a chamada dela

<li><a href="categoria.php?cat=som-e-img"><img src=icones/menucategoria/SomEImagem.png class="icones">Som e Imagem</a></li>

 

 

 

 

 

APROVEITANDO O EMBALO SE ALGUE PUDER ME AJUDAR COM PAGINACAO POR CATEGORIA AGRADECO SEGUE O LINK:http://forum.imasters.com.br/topic/536855-paginacao-por-categoria/

Compartilhar este post


Link para o post
Compartilhar em outros sites

vou tentar isso e até denoite tentarei dar uma resposta, muito obrigado leonardo2334 :D


deu um erro aqui :(

 

Deprecated: mysql_query(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\TrabalhoDeConclusaoDeCursoV2\mostrarCategorias.php on line 59

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\TrabalhoDeConclusaoDeCursoV2\mostrarCategorias.php on line 61

Propagandas
Desenvolvido por Cia do Evento LTDA | 2015 © Todos os direitos Reservados
Id Nome da Empresa

 

<!DOCTYPE html>

<html>
<head>
<meta charset="UTF-8">
<title>Categorias</title>
<link rel="stylesheet" type="text/css" href="estilo.css">
</head>
<body>
<?php
include 'ADMIN/verificaLogin.php'
?>
<div class="site">
<?php
include ('fixos/menuSup.php');
?>
<div class="armacao">
<?php
include ('fixos/menuEsq.php')
?>
<h2>
Listagem de Categorias
</h2>
<table class="listas">
<thead>
<tr>
<td>Id</td>
<td>Nome da Empresa </td>
</tr>
</thead>
<tbody>
<?php
include 'ADMIN/incConecta.php';
$categoria = $_GET['cat'];
$sql = mysql_query("SELECT * FROM categoria WHERE categoria='$categoria'");
while ($aux = mysql_fetch_assoc($sql)) {
$nome = $aux['descricao'];
print "<p>$nome</p>";
}
?>
</tbody>
<div class="propagandas"> Propagandas </div>
<?php
include ('fixos/rodape.php')
?>
</div>
</body>
</html>

meu código ficou assim, oque pode ser?


por favor gente, isso é para o meu tcc e eu queria acabar o mais breve possivel :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara tenta troca o fetch assoc por fetch array e esse erro de decapred c você estiver usando o servidor de hospedagem tera que usar a nova versão do mysql que e mysqli mas em alguns servidores de hospedagem existe a opaco de voltar uma versão do phpmyadmin ai você voltara ela para 5.4

 

 

tenta isso e me responde

 

so completando você tem que criar uma pagina como categoria.php nela recebera esses códigos ai no index seu no href="" você tem que especificar como eu mostrei <a href="categoria.php?cat=nomedacategoriaregistradanobanco"

 

 

caso vc nao esteja conseguindo me manda seu código pra mim dar uma olhada

Compartilhar este post


Link para o post
Compartilhar em outros sites

e como as categorias são fixas não é mais facil procurar por id?


ok, meu código... cada categoria corresponde a um ID

 

 

<!DOCTYPE html>

<html>
<head>
<meta charset="UTF-8">
<title>Categorias</title>
<link rel="stylesheet" type="text/css" href="estilo.css">
</head>
<body>
<?php
include 'ADMIN/verificaLogin.php'
?>
<div class="site">
<?php
include ('fixos/menuSup.php');
?>
<div class="armacao">
<?php
include ('fixos/menuEsq.php')
?>
<h2>
Listagem de Categorias
</h2>
<table class="listas">
<thead>
<tr>
<td>Id</td>
<td>Nome da Empresa </td>
</tr>
</thead>
<tbody>
<?php
require 'ADMIN/incConecta.php';
$categoria = $_GET['id'];
$sql = mysql_query("SELECT * FROM categoria WHERE descricao='$id'");
while ($aux = mysql_fetch_assoc($sql)) {
$nome = $aux['id'];
print "<p>$nome</p>";
}
?>
</tbody>
<div class="propagandas"> Propagandas </div>
<?php
include ('fixos/rodape.php')
?>
</div>
</body>
</html>

 

minha tabela categoria

 

categoria.png

 

meu Menu esquerdo

 

 

<div class="menuesq">

<img src="imagens/geralsite/logoSite.png" class="logosite">
<form action="../mostrarCategorias.php">
<ul class="empresas">
<li><a href="mostrarCategorias.php?id=3"><img src=icones/menucategoria/SomEImagem.png class="icones">Som e Imagem</a></li>
<li><a href="mostrarCategorias.php?id=4"><img src=icones/menucategoria/Salao.png class="icones">Salão</a></li>
<li><a href="mostrarCategorias.php?id=5"><img src=icones/menucategoria/Fotografo.png class="icones">Fotografos</a> </li>
<li><a href="mostrarCategorias.php?id=6"><img src=icones/menucategoria/Buffet.png class="icones">Buffet</a></li>
<li><a href="mostrarCategorias.php?id=7"><img src="icones/menucategoria/DocesESalgados.png" class="icones">Doces e Salgados</a> </li>
<li><a href="mostrarCategorias.php?id=8"><img src="icones/menucategoria/AluguelDeRoupas.png" class="icones">Aluguel de Roupas</a> </li>
<li><a href="mostrarCategorias.php?id=9"><img src=icones/menucategoria/Lembranca.png class="icones">Lembranças</a> </li>
<li><a href="mostrarCategorias.php?id=10"><img src="icones/menucategoria/AluguelDeLoucas.png" class="icones">Aluguel de Louças</a> </li>
</ul>
</form>
</div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ata intendi seria mais fácil vc criar um campo categoria como por exemplo uma tabela produtos ela tem id, descrição, nome e categoria e não uma tabela categoria ai vc cria uma nova pagina em php com a programação dos e so passar ela por get assim vo mostrar meu código que estou utilizando

 

<?php

require "conexao.php";
$categoria = $_GET['cat'];
$res = mysql_query("SELECT * FROM produtos WHERE categoria = '$categoria'");
while ($registro = mysql_fetch_array($res)) {
$nome = $registro['nome'];
$preco = $registro['preco'];
$url=$registro['url'];
$oldp = $registro['oldp'];
$categoria = $registro['categoria'];
$parcel = $registro['parcel'];
$descricao = $registro['descricao'];
$image = $registro['img'];
$id = $registro['id_produto'];
$_SESSION['id'] = $id;
print"
<ul class=\"product-list\">
<li class>
<span class=\"single-product\" data-action=\"expand\" data-plugin-status=\"ok\">
<a href=\"ss.php?cod=$id\">
<span class=\"product-img\">
<span class=\"aligner\">
<img class=\"lazy\" title=\"$nome\" alt=\"$nome\" src=\"images/$image\" width=\"180\" height=\"230\">
</span>
<span class=\"product-info-holder\">
<span class=\"product-info-aligner\">
<span class=\"name\" itemprop=\"name\">$nome</span>
<span class=\"price-holder\" itemprop=\"offers\">
<strong itemprop=\"price\" class=\"new-price\">R$ $preco</strong>
<del class=\"old-price\">R$ $oldp</del>
<strong class=\"parcel-price\">$parcel</strong>
</span>
<strong class=\"free-shipping\">Frete Grátis</strong>
</span>
<span>
<a class=\"second-button\" href=\"ss.php?cod=$id\">Detalhe</a>
</span>
</span>
</span>
</a>
</span>
</li>
</ul>";
}
?>
agr no seu index onde estiver o menu coloque assim:
<li><a href='categoria.php?cat=Mulheres'><span>Mulheres</span></a></li>

Compartilhar este post


Link para o post
Compartilhar em outros sites

só estou achando o jeito de voces criar categorias de maneira que vai dar dor de cabeça cedo ou tarde..

 

tente fazer assim >>

 

Tabela:

id, categoria_url, categoria,

 

id: 1, categoria_url: carros-azul, categoria: Carros Azul

 

assim voce pode usar funções de procurar todo por tal categoria pela url usando o segundo campo e listando tudo dessa categoria pelo id dela.. assim fica bem melhor do que usar id e categoria..

 

eu uso esse esquema em generos.. >>

 

6abab883a9.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa é uma das maravilhas de um fórum, os diversos pontos de vista.

 

Agora, salvar "URL"? :pinch:

 

Particularmente eu manteria a tabela categorias como você fez (id e nome), e faria a busca de forma parecida com a que o @leonardo2334 tentou explicar.

 

No seu código estás buscando pela descrição utilizando o valor do ID. O certo é:

SELECT * FROM categoria WHERE id='$id'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bagunça heim! :coolio:

Não se salva ID de categoria na tabelas de produtos, o correto é criar um has many entre as duas tabelas

 

1 - categoria

2 - produto

 

3 - produto_has_categoria onde guarda o id da categoria e o id do produto.

Exemplo: n:m

 

LodOdrz.png

Para filtrar, só criar um joins entre as tabelas, seja via slug ou ID

E vale a máxima do Vale do Silício "Simplify Stupids"

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.