Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia pessoal!
Estou tentando fazer um filtro de resultados aqui só que não estou tendo muito sucesso com isso, infelizmente... Espero que possam me dar uma luz...
Eu tenho 3 campos diferentes para filtrar (todos e +2 categorias) onde clicando em "todos" todos os projetos aparecem e clicando nas categorias só os projetos daquelas categorias aparecem.
Alguem poderia dar um pequeno exemplo de como fazer isso? Assim eu posso adaptar para o meu caso e postar o resultado do que eu fizer... Ja procurei e não achei algo parecido com o que quero =/
assim fica complicado amiguinho... poste as tabelas envolvidas na operação, ou então um exemplo mais claro do que deseja fazer... ao que me parece o problema deve ser simples de se resolver com um select.
abçs!
Opa vou postar o código aqui que eu to usando nessa página.
<div id="wrapper">
<div id="portifolio">
<h2>Portifólio</h2>
<span class="links"><strong><a href="index.php">Home</a></strong> >> Portifólio</span>
<ul>
<li><a href="#">Todos</a></li>
<li><a href="#">Teste 01</a></li>
<li><a href="#">Teste 02</a></li>
</ul>
<?php
$sql_works = mysql_query("SELECT * FROM portifolio") 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="works"><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><!--portifolio-->
</div><!--wrapper-->
Esse é o código da página que eu ja to recuperando pelo php... Os nomes estão testes porque não sei o que o cliente vai querer que coloque, então to usando para testar se ta funcionando.
Quanto a class work, ela ta recuperando uma imagem com o link para uma página de detalhes sobre aquele produto... Ja tenho 3 produtos de teste postados nas categorias (teste 01 e teste 02)
Na parte da relação de categorias (recomendo deixar a parte de relação de categorias dinamica):
<ul>
<li><a href="pagina.php">Todos</a></li>
<li><a href="pagina.php?categoria=1">Teste 01</a></li>
<li><a href="pagina.php?categoria=2">Teste 02</a></li>
</ul>
No sql:
$categoria=$_GET['categoria'];
if ($categoria){
$filtro=" and id_categoria=$categoria";
}
$sql_works = mysql_query("SELECT * FROM portifolio where 1=1 $filtro") or die(mysql_error());
O resto fica igual, só atentando para o nome dos campos.
Acho que isso resolve, não é a solução ideal (já que deixa aberto para um sql injection).
Eu tentei desse modo Cristianoferr e não deu... seria poque estou usando url dinâmica?
Existe algum outro jeito de não tenha esse risco de sql injection?
Eu tentei desse modo Cristianoferr e não deu... seria poque estou usando url dinâmica?
Não deu o que? Não listou? Não filtrou? Deu erro?
A parte de ser dinâmica ou não é indiferente aqui. O ideal é que seja dinâmica.
Existe algum outro jeito de não tenha esse risco de sql injection?
Isso é aprimoramento, faz o básico funcionar depois melhora o código.
O que é comum fazer é tratar o parâmetro e usar pdo.
>
Não deu o que? Não listou? Não filtrou? Deu erro?
A parte de ser dinâmica ou não é indiferente aqui. O ideal é que seja dinâmica.
Não filtrou, não aconteceu nada... Ainda não sei tanto de php, devo estar colocando algo errado =/
Eu criei um campo na tabela chamado "filtroCat" onde as categorias tão salvas como (teste 01 e teste 02)
Só falta mesmo essa parte do filtro para eu terminar, ja que eu fui fazendo todo o resto e essa parte por mais básica que seja, eu não estava conseguindo... Falta de conhecimento complica as coisas
Como está a sua tabela?