Jump to content
JoaoGusmao

Várias categorias para o mesmo artigo

Recommended Posts

Galera, tenho um blog que fiz em php e mysql, portanto não sei como fazer o cadastro de um artigo em várias categorias. como posso fazer isso? as categorias são cadastradas no bd, e na hora de listar os artigos, eu faço um where com o id da categoria. ajuda ae galera! vlw

Share this post


Link to post
Share on other sites

olha.. não sei se entendi bem, mas eu acho bem mais facil assim:

1. no formulario de cadastro do artigo tenho um campo p/ a categoria principal,

outros para as outras subcategorias etc...

cada campo do form, obvio, tem uma coluna correspondente na tabela do banco;

ai no select você usa and; ex:

select campos from tabela
where categoria="esporte" AND subcategoria1="futebol" AND subcategoria2="campeonato brasileiro"

, ok?

seria isso?

Share this post


Link to post
Share on other sites

olha.. não sei se entendi bem, mas eu acho bem mais facil assim:

1. no formulario de cadastro do artigo tenho um campo p/ a categoria principal,

outros para as outras subcategorias etc...

cada campo do form, obvio, tem uma coluna correspondente na tabela do banco;

ai no select você usa and; ex:

select campos from tabela
where categoria="esporte" AND subcategoria1="futebol" AND subcategoria2="campeonato brasileiro"

, ok?

seria isso?

 

acho q não é isso não.. creio q ele quer a mesma coisa q vou ter q tentar fazer daqui algumas semanas,

tipo meu caso fazendo um guia online, pegar exemplo de um salão de festa com bufft, o dono desse salão quer que quando alguém entrar em uma das seguintes categorias, buffets, salão E buffets com salão, logo eu tenho um único cadastro onde o anuncio apresenta em 3 categorias. creio q seja isso... tb tenho duvidas.. vou acompanhar esse tópico.. xD

Share this post


Link to post
Share on other sites

você pode criara uma tabela com dois campos artigo(int)|categoria(int) depois é só atribuir as categorias ao arquivo, pode ser por checkbox na hora do cadastro!

Share this post


Link to post
Share on other sites

AFF... isso eu eu sei fazef ¬¬'. Lê o tópico direito, cara!

kkk,

bom o cara deve ter entendido errado.

mas como falei eu tb vou ter q fazer isso aqui, então se eu consegui eu dou um toque , pq tb não faço a minima ideia como fazer xD

Edited by Michel Kuguio

Share this post


Link to post
Share on other sites

pensei em fazer um campo bd do artigo com o nome categoria, dai registra a categoria assim como ela é lida (ex: videos). dai na hora de consultar, coloca um "LIKE". Esta ideia é valida.

Share this post


Link to post
Share on other sites

Eitaa... ai nao sei. talves separa a variável com as categorias depois da vírgula..: algo do tipo. tenta estudar os códigos do wordpress para ver se tem resultado (eu já dei uma olhada, mas nao me dou bem com POO)

Share this post


Link to post
Share on other sites

JoaoGusmao, salve um array junto com os produtos contendo as IDs das categorias

Share this post


Link to post
Share on other sites

O correto é o seguinte:

 

TABLE categoria

id, nome

 

TABLE artigo

id, titulo, texto

 

TABLE artigo_categoria

id_categoria, id_artigo

Share this post


Link to post
Share on other sites

Acho que este seu método so complicaria, pq está adicionando uma nova tabela, e isto nao é necessário, já que pode-se criar uma coluna com o id da categoria na tabela do artigo.

Share this post


Link to post
Share on other sites
já que pode-se criar uma coluna com o id da categoria na tabela do artigo.

dessa forma você não conseguiria ter várias categorias para um mesmo artigo

 

Acho que este seu método so complicaria, pq está adicionando uma nova tabela, e isto nao é necessário

estude Normalização de Dados (Formas Normais).

Share this post


Link to post
Share on other sites

dessa forma você não conseguiria ter várias categorias para um mesmo artigo

 

estude Normalização de Dados (Formas Normais).

cara até tem pq o site q tenho aqui, tenho um em asp não foi eu q desenvolvi o em asp.. mas nele o WM colocou os ids em um unica coluna porem os id parecem assim (1),(2),(3)... não sei o q muda com os parenteses ma snao sei como depois irar a especifica parte tipo só o 2 e deixar o 1 e o 3...

mas convenhamos temos q pensar um pouco caso criar uma 3 tabela facilitará nossa programão eu crio a 3 tabela.. xD

tem que pensar qual vai dar menos trabalho para alteração...

Share this post


Link to post
Share on other sites
colocou os ids em um unica coluna
pura gambiarra.

 

caso criar uma 3 tabela facilitará nossa programão eu crio a 3 tabela.. xD

sim, facilita e melhora a performance.

Share this post


Link to post
Share on other sites
É assim como no wordpress... você cadastra as categorias,

e depois no post você seleciona as categorias em que aquele post vai. isso que eu quero.

ah, ta.. vamos ver se agora eu entendi..

 

1. nao sei se é exatamente assim q e feito no wordpress,

mas suponho q você pode criar 1 "array" no formulario de cadastro

(ou tela de cadastro, se preferir...) utilizando checkboxes, como dito acima;

abaixo segue 1 exemplo:

 

<input type="checkbox" name="passatemp[]" value="TV" />
           TV</label>
         <br />
         <label>
         <input type="checkbox" name="passatemp[]" value="Futebol" />
           Futebol</label>
         <br />
         <label>
         <input type="checkbox" name="passatemp[]" value="Video Game" />
           Video Game</label>
         <br />
         <label>
         <input type="checkbox" name="passatemp[]" value="Cinema" />
           Cinema</label>

retirado dessa apostila:

http://www.apostilando.com/download.php?cod=2842&categoria=PHP

(repare q todos os checkboxes terão o mesmo nome c/ colchetes vazios)

 

2. p/ salvar no banco num mesmo campo, as formas q eu conheço seriam

implode ou serialize.

 

obs: p/ editar esse campo: comando update normal (o campo é varchar) ok?

Edited by Fernando C

Share this post


Link to post
Share on other sites

2. p/ salvar no banco num mesmo campo, as formas q eu conheço seriam

implode ou serialize.

isso é gambiarra @Fernando C.

 

Note que você está enviando "mais de uma informação" para um campo. Em termos de entidade e modelagem normalizada, isso está incorreto.

Veja a estrutura que propus.

 

Modelar errado, te acarretará mais problemas no futuro.

Por exemplo, com essa sugestão, imagina se eu quiser que você me responda todos os artigos que pertencem a categoria "Doces", como você faria esse SELECT ?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.