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

Duvida com a classificação em categorias com php


Renato Freitas

Pergunta

Galera é o seguinte como vocês percebem sou novo no forum e consequentimente novo em php também.

Estou com o seguinte problema com categorias, para ser mais preciso vou explicar para vocês o que eu fiz.

Tenho uma table no meu banco de dados com o nome de categorias e uma tabela produtos.

Na tabela produtos tem um campo categorias. certo até ai tudo bem sem problemas.

Um produto pode pertencer a varias categorias certo ? então o que eu fiz:

Classifiquei cada categoria por uma ID EX: madeira ID=2 ferro ID=3 e assim por diante.

Para inserir no bando de dados na tabela produto no campo categorias usei chekbox que vem de uma seleção da tabela categorias.

Que no caso ficou assim na inserção: dei um select na tabela categorias de maneira que cada categoria corresponde a um checkbox.

Certo até ai tudo bem. para inserir no campo categorias da tabela produtos eu usei a função implode que ficou assim:

$categorias = $_POST['categorias'];
$categorias = implode(',' $categorias);
E assim inseri no meu banco de dados, então no meu campo categorias da minha tabela produtos ficou com 2 3 ou mais números separados por virgula. isso na hora de fazer a consulta também funcionou um produto ficou classificado em várias categorias. Mais a minha duvida é quando eu faço a seleção no meu checkbox! eu queria que cada checkbox ficasse selecionado já nas categorias pertencentes. segue o codigo abaixo se é que vocês me intendem. Página que faz a seleção dos checkbox categorias:
<?php
$produto = $_GET['produto'];
$seleciona_produtos = mysql_query("SELECT * FROM `produtos` WHERE `ID` ='".$produto."' ");
while($retorno = mysql_fetch_array($seleciona_produtos)){

$categorias = $retorno['categorias'];
// ´so lembrando que aqui terei o retorno de 2 ou mais numeros separados por virgula ex: 3,2,4 //

}

    $seleciona = mysql_query("SELECT * FROM `categorias`");
    while($reverte = mysql_fetch_array($seleciona)){
        $id_check = $reverte['id'];
        $nome_check = $reverte['nome'];
    ?>
      <input name="categoria[]" type="checkbox" value="<?php echo $id_check;  ?>" />
      <?php echo $nome_check; ?><br />
      <?php
    }
    ?>

Esta é a pagina de inserção e de edição de produtos só que eu queria que os ckeckbox já aparecessem marcados para cada categoria certa :/

Se vocês puderem me ajudar ficarei muito grato.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Faça o seguinte:

$categorias = explode(',', $retorno['categorias']); // Vai criar uma array com os valores (que estavam separados por vírgula)
...
while($reverte = mysql_fetch_array($seleciona)){
        $id_check = $reverte['id'];
        $nome_check = $reverte['nome'];
        if (in_array($id_check, $categorias)) $marca = 'checked="checked"'; // Se a categoria em questão estiver dentro da array $categorias, vai ficar marcada
        else $marca = '';
    ?>
      <input name="categoria[]" type="checkbox" value="<?php echo $id_check;  ?>" <?php echo $marca/>
      <?php echo $nome_check; ?><br />
      <?php
    }

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,2k
    • Posts
      652k
×
×
  • Criar Novo...