Ir para conteúdo
Fórum Script Brasil
  • 0

Como selecionar todos os produtos filtrando pelo id da categoria?


GM3555

Pergunta

Seria simples se o campo id_categoria tivesse apenas um id, mas o campo está assim:

1#7#8#9#10#11#12#14#

Ou seja, um produto pode pertencer a várias categorias que estão separadas pelo delimitador #.

Seria preciso uma função na query para separar os id's pelo 'delimitador "#"' e comparar um por um.

imagino que a solução seja algo "parecido" com isso:

SELECT * FROM produtos WHERE substring('#', 'id_categoria', '#') = '".$_POST['id_categoria']."'

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Acho que o algoritmo teria que estar na query,

Para ilustrar melhor:

$categoria = $_POST['categoria'];//digamos que seja parafusos
SELECT * FROM produtos WHERE categoria=$categoria;

Só que na tabela, o campo categoria está assim: parafusos#porcas#etc...

Link para o comentário
Compartilhar em outros sites

  • 0
<?php
function pegaIds($id){
$exp = explode("#",$id);
$where = "WHERE ";

for($i=0; $i < count($exp); $i++){
    if($i == (count($exp)-1)){
    #ULTIMO REGISTO
    $where .= " id_categoria = '$exp[$i]'";
    }else{
    $where .= " id_categoria = '$exp[$i]' and ";
        }

    }
    return $where;
}

$id  = "1#7#8#9#10#11#12#14";
$where    = pegaIds($id);

echo $where;

?>

Editado por Jefferson Oliveira
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...