Ir para conteúdo

POWERED BY:

Arquivado

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

mrbomber

Multi categoria em sistema de news

Recommended Posts

galera...

 

to com um problemao aqui:

 

preciso q a noticia tenha mais de uma categoria.

as categorias assim como as noticias sao dinamicas

 

meu bd: (ex)

 

table cat:

 

idcat , nome_cat, descricao

 

 

table news

 

id, idcat, noticia

 

 

 

como fazer este relacionamento, outra tabela?

 

obs: php e mysql

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra tabela, é melhor realmente..

se for jogando como string, separando por , ou qualquer coisa do tipo, no único campo de categoria, vai ficar muito gambiarra.

 

table newsCat

idnews

idcat

 

e ai basta cadastrar, vários idcat, para o mesmo idnews.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu William

 

foi uma verdadeira luz em meu caminho... hehehehehehe

 

 

imagina ae... depois de finalizar o projeto (complexo pra caramba) o cliente fala que quer isso... tu fica perdido.....

 

hehehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo,

 

realmente use outra tabela como o wiliam falou

 

mais voce tem dua formas:

 

ex:

 

imagine que existem categorias

1 - cat 1

2 - cat 2

3 - cat 3

 

 

voce pode ligar isso por linha

 

Ex:

na tabela relacionamento voce atribui o produto a categoria:

 

Prod / Cat

1 1,2

 

Ou pode ligar por linha

 

Prod / Cat

1 1

1 2

 

 

Entendeu?

 

abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Willian e RTDN, muito obrigado

 

fiz o cadastro com outra tabela , usando checkbox.

 

ficou + ou - assim:

 

 

table cat:

 

idcat , nome_cat, descricao

1 cat1 legal

2 cat2 bom

 

 

table news

 

id, noticia

1 news1

2 news2

3 news3

 

table cat_news

 

id_news id_cat

1 1

1 2

2 1

 

 

 

 

inseri no banco beleza....

 

como é um sistema de news, preciso de uma pagina para editar a noticia

como fazer com que me liste todos os checkbox:

 

1- pegando os dados das categorias q sao dinamicas (consigo)

2 - marcar os checkbox q estao declarados na tabela cat_news

 

tentei colcoar um while dentro do outro e nao prestou... alguem ajuda?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então no seu sistema, uma news pode ter várias categorias relacionadas?

Porque se fosse só uma categoria para cada new então você poderia fazer um <select>while(){<option>while listando todas as categorias existentes, e a categoria dessa new estaria como checked</option>}</select>

Ficaria mais fácil! Mas pelo que entendi uma news pode mesmo ter várias categorias!

 

É isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Trabalhar com checkboxs, dá essa dorzinha de cabeça pra trazer eles marcados.. mas vamos lá:

http://forum.imasters.com.br/index.php...t&p=1245799

 

Se não entender, grita ae.

Compartilhar este post


Link para o post
Compartilhar em outros sites

deu certo assim:

 

 

<?
   $listagem = "SELECT * FROM noticias_categorias";
   $query = mysql_query($listagem);
   $sqlxx = ("SELECT id_cat FROM noticias_cats WHERE id_news = $_GET[id] "); 
   $consulta2 = mysql_query($sqlxx);

		if(mysql_num_rows($consulta2)!=0) 
		{
			while($dadosRel = mysql_fetch_assoc($consulta2))
			{
				$vetorFav[] = $dadosRel['id_cat']; 
			}
		}
			
	while ($linha=mysql_fetch_array($query)){
	$id = $linha["id_cat"];
	$projeto = $linha["nome"];
	
  if( in_array( $linha['id_cat'], $vetorFav ) ) 

			$checked = 'checked="checked" '; 
		else
			$checked = ''; 
			
	echo	 '<input type="checkbox" value="'.$id.'" name="ide[]" '.$checked.'/>'.$projeto.'<br />';
	}
	?>

 

Agora vamu ver se consigo atualizar o bd ...

qq coisa posto aki

 

 

Valeu William

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai esta... nao consegui... e de cara vi um problema.....

 

como atualizar a tabela noticias_cats....

 

teria q ou deletar o registro ou inserir o registro...

 

 

tentei assim e nao funcionou:

 

$Checkboxes = $_POST["ide"];
foreach($Checkboxes as $ide){
 // Aqui você troca o echo pela operação que você quer.
$sqla = mysql_query("UPDATE noticias_cats  id_cat='$ide' WHERE id_news='$id'");
$sqlx = mysql_query($sqlx);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao ... esse é o problema... nao seir aupdate...

 

ja que eu atualizo a edicao da noticia toda com este script... e essa ae é a penas a parte do checkbox

por ex:

 

 

 

table noticias_cats

 

id_news id_cat

1 2

1 3

2 1

 

 

so que ai agora eu quero inserir a categoria 4 para a noticia 1 e excluir a categoria 2.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então.. você conseguiu trazer todos os check marcados ?

a única solução que encontrei para isso, foi realmente DELETAR a tabela inteira.. referente àquele registro..

 

e depois inserir de novo, oq veio do form.

Ai você faria primeiro o DELETE, tipo:

DELETE FROM `noticias_cats` WHERE `id_news` = '{$id}'

E depois você insere de novo..

fazer todo o processo com o UPDATE, é complicado demais nesse caso.. só consegui resolver com o delete, e depois insert mesmo.

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.