Ir para conteúdo

POWERED BY:

Arquivado

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

tounoosso

Exibir por categoria

Recommended Posts

Estou com um problema pessoal, eu sempre acompanho o forum mesmo sem ser cadastrado e ja consegui resolver meus problemas com a ajuda indireta do pessoal aqui em cada topico, o problema é que não consegui encontrar nada que me ajude nesse problema... vamos à ele.

 

 

Estou fazendo um site de exibição dos produtos de uma loja de calçados, é como se fosse um catálogo virtual, só exibição. Daí quando o cliente vai em calçados, aparece todos os produtos que a loja possuí e nisso eu criei um menuzinho para filtrar (calçados femininos, calçados masculinos, calçados infantis) e eu quero que quando clique em cada um dos menus, ele filtre e mostre só o que ta cadastrado nessa categoria. Alguem poderia me ajudar?

 

<div id="wrapper">
<div id="calcados">
	<h2>Portifólio</h2>
    <span class="links"><strong><a href="<?php echo $urlbase_config;?>">Home</a></strong> >>Calçados</span>


    <ul>
        <li><a href="#">Todos</a></li>
        <li><a href="#">Calçados Femininos</a></li>
        <li><a href="#">Calçados Masculinos</a></li>
        <li><a href="#">Calçados Infantis</a></li>
    </ul>
    
    
<?php 
$sql_works = mysql_query("SELECT * FROM calcados") or die(mysql_error());
	while($res = mysql_fetch_array($sql_works)){
		$thumb = $res['thumb'];
		$titulo = $res['titulo'];
		$tituloSlug = $res['tituloSlug'];
		$catSlug = $res['catSlug'];
?>    
    <div class="calcados-img"><a href="<?php echo $urlbase_config;?>/<?php echo $catSlug;?>/<?php echo $tituloSlug;?>"><img src="<?php echo $urlbase_config;?>/js/timthumb.php?src=<?php echo $urlbase_config;?>/uploads/<?php echo $thumb;?>&h=250&w=200&zc=1" alt="<?php echo $titulo;?>" title="<?php echo $titulo;?>" /></a></div>   

<?php
	}
?>
    
</div><!--calcados-->
</div><!--wrapper-->

Alguem poderia me ajudar com esse filtro? Não achei nada parecido aqui no forum antes de criar o topico

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia,

 

Você pode fazer o seguinte, ao clicar em uma opção do menu pegue o valor via $_GET (por exemplo) e com um switch verifique qual a opção escolhida, depois faça a sua busca normalmente no banco com a claúsula WHERE igual a opção vinda do menu e exiba conforme sua necessidade.

 

Isso poderia ser feito via ajax (modo xiita) ou com ajax jQuery também.

 

Espero que ajude.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas teria que ser feito necessariamente em ajax / ajax jquery??

 

É que ainda estou começando a aprender tudo o que tem que ser feito e esse é o primeiro site que estou desenvolvendo, então ainda tenho certas dúvidas que para muitos são básicas mas para mim, ainda são meio complicadas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou postar a estrutura do DB da tabela que eu quero filtrar os dados, até porque é a única por enquanto, que está trazendo os dados dinâmicamente, o resto ainda vou passar para o banco de dados

 

tabela_zps7371f9bc.jpg

 

 

 

 

Fiz esses 3 cadastros só para conseguir fazer o filtro, onde os campos "slugs" são para o SEO da página.

 

Então se eu clicasse no menu "Calçados Infantis" seria mostrado só o terceiro resultado... "Calçados Femininos" só o primeiro e assim por diante, conforme for cadastrando mais categorias.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma notícia boa e uma ruim.

 

A boa: dá pra fazer

 

A ruim: você vai ter bastante trabalho.

Se eu tivesse 8 horas para cortar uma árvore, gastaria seis afiando meu machado

Estude!

 

http://pt.wikipedia.org/wiki/Normalização_de_dados

 

Você precisará criar uma tabela tags e outra tabela tags-calcado para fazer o relacionamento entre um item e suas categorias.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi... Jeito vai ser dar uma pesquisada pra conseguir fazer isso.

 

Mas não daria para fazer só com um select e where? Algo mais simples..

Até um certo nível de simplicidade, daria sim.

 

http://technet.microsoft.com/pt-br/library/ms179859.aspx

select * from calcados where tags like '%Feminino%' and tags like '%Calcados%'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo tenho a página calcados.php... o que iria no href do menuzinho sabe... tipo

 

<a href="calcados.php?filtro=feminino">Femininos</a>

 

Seria algo assim?

 

E no sql eu fiz assim, mas não sei se esta certo...

<?php select * from calcados where tags like '%Feminino%' and tags like '%Calcados%' or like '%Masculino% and tags or like '%Infantil%' and tags ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Tipo tenho a página calcados.php... o que iria no href do menuzinho sabe... tipo

 

<a href="calcados.php?filtro=feminino">Femininos</a>

 

Seria algo assim?

Sim, seria. Aí você teria que montar a consulta assim:

if (isset($_REQUEST['filtro'])) {
    $sql = "select * from calcados where tags like '%{$_REQUEST['filtro']}%'";
}

E no sql eu fiz assim, mas não sei se esta certo...


<?php select * from calcados where tags like 'þminino%' and tags like 'Êlcados%' or like '%Masculino% and tags or like '%Infantil%' and tags ?>

 

 

Tá bastante errado. Primeiro que vai dar uns errinhos inesperados por você tentar concatenar texto sem o ponto. Tudo culpa de ter esquecido as aspas. A consulta também tá meio erradinha, mas enfim.

 

Tenta adaptar com o que você já conseguiu e me traga um parecer diferente do último ;) Aí continuamos a caminhada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Sim, seria. Aí você teria que montar a consulta assim:

if (isset($_REQUEST['filtro'])) {
    $sql = "select * from calcados where tags like '%{$_REQUEST['filtro']}%'";
}

Tá bastante errado. Primeiro que vai dar uns errinhos inesperados por você tentar concatenar texto sem o ponto. Tudo culpa de ter esquecido as aspas. A consulta também tá meio erradinha, mas enfim.

 

Tenta adaptar com o que você já conseguiu e me traga um parecer diferente do último ;) Aí continuamos a caminhada.

 

Entnedi... Então pelo menos no href eu acertei o que seria kk .. e na sql o problema era mesmo uma aspas, que coisa.

Provavelmente ainda está errado ja que ainda não consegui resultado =/

 

<?php
$filtro = "$_GET[filtro]";
$sql_filtro = ("SELECT * FROM calcados WHERE categoria LIKE '%feminino%'");


if (isset($_REQUEST['$filtro'])) {
    $sql = "select * from calcados where categoria like '%{$_REQUEST['$filtro']}%'";
}
?>  

    <ul>
        <li><a href="<?php echo $urlbase_config;?>/calcados">Todos</a></li>
        <li><a href="<?php echo $urlbase_config;?>/calcados?filtro=feminino">Calçados Femininos</a></li>
        <li><a href="<?php echo $urlbase_config;?>/calcados?filtro=masculino">Calçados Masculinos</a></li>
    </ul>

 

Quero tentar fazer para encontrar só uma categoria primeiro, assim fica mais facil pra mim fazer a outra categoria sozinho sabendo o que tem que ser feito e tals... Não seria caso de usar um while? mesmo eu achando que não, não custa perguntar hehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá faltando um cursinho básico de lógica e outro de sintaxe, né não???

 

isso [inline]$filtro = "$_GET[filtro]";[/inline] é diferente disso [inline]$filtro = $_GET["filtro"];[/inline]

 

Você precisa de aspas quando for escrever um texto. Não precisa delas para variáveis

 

Do jeito que você tentou, o todos nunca vai funcionar, porque você força o uso de feminino na segunda linha (que dispensa o uso de parênteses).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá faltando um cursinho básico de lógica e outro de sintaxe, né não???

 

isso [inline]$filtro = "$_GET[filtro]";[/inline] é diferente disso [inline]$filtro = $_GET["filtro"];[/inline]

 

Você precisa de aspas quando for escrever um texto. Não precisa delas para variáveis

 

Do jeito que você tentou, o todos nunca vai funcionar, porque você força o uso de feminino na segunda linha (que dispensa o uso de parênteses).

 

Sim, ainda falta muita coisa para aprender. Comecei a ver php agora e peguei esse site de um colega meu para fazer, daí dei uma parada no que eu tava lendo para fazer o site e ir tirando as duvidas aos poucos, mas ja vou voltar a dar uma estudada em relação ao php e todo o resto.

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.