Ir para conteúdo

POWERED BY:

Arquivado

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

zombie

[Resolvido] Aviso de Novo Comentário!

Recommended Posts

Galera, tudo joia?

 

Bom tenho um sistema de notícia, e em cada notícia um sistema de comentario, gostaria de saber como eu poderia fazer para que quando tiver um novo comentário, aparecer uma imagem no titulo (Novo comentario por exemplo) ou o titulo ficar com fundo ou outra cor, alguem tem alguma ideia, sugestão? desde ja agradeço a todos.. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara geralmente o povo utiliza uma imagem digamos como um simbolo para comentario com a quantidade de comentários que tem nekele texto...

 

ou exibir direto os comentários de baixo do texto...

 

Algo dessa forma

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

hum.. não sei se entendi bem, mas qual a diferença entre 'novo comentário', e 'algum comentário' ?

 

você vai controlar os usuários que 'já leram', e os que 'não leram ainda'?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo assim, tem um sistema de noticia, dai por exemplo, tenho 10 noticia, e a ultima noticia, foi comentada (um novo comentário), dai no titulo da noticia gostaria de colocar alguma coisa para identificar que aquela noticia tem um novo comentário. só que nao sei como poderia fazer isso.

 

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas como você vai identificar na sua logica que seria um novo comentario.. comentário com mais de 1 dia já não seriam novos? dai nesse caso você verifica na data do comentário...

Compartilhar este post


Link para o post
Compartilhar em outros sites

entendi, mais no caso se eu quizer mostrar a quantidade de comentarios para cada noticia por ex:

 

Titulo (5)

 

a quantidade entre (aspas) por exemplo, como poderia estar fazendo essa contagem?

 

abs vlwww

Compartilhar este post


Link para o post
Compartilhar em outros sites

como estão as tuas tabelas do banco de dados ?

 

você tem várias opções... SELECT COUNT(), ..num_rows();

Compartilhar este post


Link para o post
Compartilhar em outros sites

então na tabela ta assim:

 

id

idnoticia

comentario

nome

 

eu teria que contar no idnoticia, qual seria a maneira correta de contar os ids, e ler ele na pagina ao lado do titulo?

Compartilhar este post


Link para o post
Compartilhar em outros sites


$sql = mysql_query("SELECT * FROM comentarios WHERE idnoticia='2'");

$total = mysql_num_rows($sql);

echo $total;

Compartilhar este post


Link para o post
Compartilhar em outros sites

legal, vou dar uma estudada aqui, agora preciso aprender como faço para puxar o numero de comentário para cada noticia, por exemplo na tabela idnoticia, tem os ids das noticias, preciso dar uma busca como farei para puxar esses ids para as noticias deles, vlw pela ajuda...se conseguir eu posto aqui...... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

kra tentei puxar a quantidade de comentário para cada titulo mais ele puxa a quantidade para todos eles.como faço para puxar o de cada um, sendo que os titulos estão na tabela noticiacomentario, fiz assim como você falou e deu certo:

 

mysql_query("SELECT * FROM comentarios WHERE idnoticia='3'"); porem só puxou a quantidade que tem o id 3....

 

como poderia puxar eles......

 

vlwwww

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma forma melhor..

 

SELECT id,titulo, ( SELECT COUNT(id) FROM comentario WHERE comentario.id_noticia = noticia.id )AS qnts_comentarios FROM noticia

estrutura das tabelas:

--
-- Estrutura da tabela `noticia`
--

CREATE TABLE IF NOT EXISTS `noticia` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `titulo` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

--
-- Extraindo dados da tabela `noticia`
--

INSERT INTO `noticia` (`id`, `titulo`) VALUES
(1, 'Lorem'),
(2, 'Ipsum'),
(3, 'Terceira');
e

--
-- Estrutura da tabela `comentario`
--

CREATE TABLE IF NOT EXISTS `comentario` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `id_noticia` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;

--
-- Extraindo dados da tabela `comentario`
--

INSERT INTO `comentario` (`id`, `id_noticia`) VALUES
(1, 1),
(2, 2),
(3, 2),
(4, 1),
(5, 3),
(6, 2),
(7, 2),
(8, 3);
saída:

 

id titulo qnts_comentarios

1 Lorem 2

2 Ipsum 4

3 Terceira 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eai tudo joia, vlw pelo help ai, tentei assim:

 

<?php $sql = mysql_query("SELECT id,titulo, (SELECT COUNT(id) FROM noticiacomentario WHERE noticiacomentario.idnoticia = noticia.id )AS qnts_comentarios FROM noticia");

$total = mysql_num_rows($sql);

echo $total; ?>

 

extrutura das tablas

 

noticia

id

titulo

 

noticiacomentario

id

idnoticia

 

porem não aparece a contagem, o que to errando ai? obrigado desde ja... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

^_^

 

não precisa usar o num rows..

 

tente assim:

<?php 
    $sql = "SELECT id,titulo, 
     (SELECT COUNT(id) FROM noticiacomentario 
            WHERE noticiacomentario.idnoticia = noticia.id )AS qnts_comentarios 
        FROM noticia";

    $query = mysql_query( $sql )or die( mysql_query() );
    while( $dados = mysql_fetch_object( $query ) )
        echo $dados->titulo.' ('.$dados->qnts_comentarios.' )', '<br />';

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo, na pagina eu ja tenho um while, quando eu tento fazer a contagem, ele carrega o titulo mais dai aonde é para aparecer a quantidade fica em branco e o restante dos titulos nao aparecem, como poderia fazer esse select e colocar por ex. <?php echo $noticia['qnts_comentarios']; ?> algo assim para aparecer a contagem. ou to no caminho errado?

 

desde ja agradeço pela atenção kra http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo, na pagina eu ja tenho um while, quando eu tento fazer a contagem, ele carrega o titulo mais dai aonde é para aparecer a quantidade fica em branco e o restante dos titulos nao aparecem, como poderia fazer esse select e colocar por ex. <?php echo $noticia['qnts_comentarios']; ?> algo assim para aparecer a contagem. ou to no caminho errado?

 

desde ja agradeço pela atenção kra http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

Posta teu código cara.

 

É melhor pra gente analisar. deve ter coisa errado ai. talvez um fechamento no lugar errado.

Posta sua página das noticias.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eai tudo joia? então, to sem o codigo aqui agora, to no trampo ainda, chegando em casa eu posto ele aqui, mais não conegui fazer dessa forma acima, ele fica branco, select count não consegui direito, e o num_rows apareceu a contagem porem só de uma noticia. to dando uma estudada mais até agora nao deu certo ainda, se alguem tiver mais uma ideia agradeço muito, e caso consigo resolver eu posto aqui a solução. (acho que to errando em algum canto, mais nao to conseguindo achar)

 

abs

 

té+ http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

por questões de clareza, execute exatamente assim:

<?php
	$con = mysql_connect( 'localhost', 'root', '123' );
	mysql_select_db( 'test', $con );
	
    $sql = "SELECT `id`,`titulo`, 
     (SELECT COUNT(`id`) FROM `comentario` 
            WHERE `comentario`.`id_noticia` = `noticia`.`id` )AS `qnts_comentarios` 
        FROM `noticia`";

    $query = mysql_query( $sql )or die( mysql_error() );
    while( $dados = mysql_fetch_object( $query ) )
        echo $dados->titulo.' ('.$dados->qnts_comentarios.' )', '<br />';

com as estruturas de tabelas que propus:

--
-- Estrutura da tabela `comentario`
--

CREATE TABLE IF NOT EXISTS `comentario` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `id_noticia` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;

--
-- Extraindo dados da tabela `comentario`
--

INSERT INTO `comentario` (`id`, `id_noticia`) VALUES
(1, 1),
(2, 2),
(3, 2),
(4, 1),
(5, 3),
(6, 2),
(7, 2),
(8, 3);
e
--
-- Estrutura da tabela `noticia`
--

CREATE TABLE IF NOT EXISTS `noticia` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `titulo` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

--
-- Extraindo dados da tabela `noticia`
--

INSERT INTO `noticia` (`id`, `titulo`) VALUES
(1, 'Lorem'),
(2, 'Ipsum'),
(3, 'Terceira');

saída:

Lorem (2 )

Ipsum (4 )

Terceira (2 )

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa beleza?

 

então deu certo aqui, tinha um erro no que estava fazendo, um dúvida.

 

echo $dados->titulo.' ('.$dados->qnts_comentarios.' )', '<br />';

 

esse trecho do codigo, posta a quantidade de comentário, e o titulo, como faria para colocar assim:

 

data - titulo (quantidade de comentario) leia mais... e o link para acessar a noticia, como ficaria esse trecho?

 

muito obrigado http://forum.imasters.com.br/public/style_emoticons/default/joia.gif http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

Galera, to tentando aqui e nada, alguem pode me dar uma "Luz" como poderia fazer para ficar assim:

 

23/09/2010 - Titulo da Noticia (3 comentários) - leia mais (com um link para ler a noticia)

 

$query = mysql_query( $sql )or die( mysql_error() );

while( $dados = mysql_fetch_object( $query ) )

echo date('d/m/Y', strtotime($row_noticia['data'])), $dados->titulo.' ('.$dados->qnts_comentarios.' )', '<br />'; ?> </p></td>

 

tentei assim mais nao deu, a data aparece mais nao a correta.

 

agradeceria muito pelo help.

 

abs

 

<tr>

<td class="style3"><strong><a href="lermsg.php?id=<?php echo $row_noticia['id']; ?>"> <span class="style4"><?php echo date('d/m/Y', strtotime($row_noticia['data'])); ?></span> - <?php echo $row_noticia['titulo']; ?> - <span class="style3"><em>leia mais...(Aqui vai o numero de comentario)</em></span></a></td>

 

usando assim

 

$sql = mysql_query("SELECT * FROM comentarios WHERE idnoticia='1'");

$total = mysql_num_rows($sql);

echo $total;

 

da certo forem ele puxa a quantidade para todos. da outra forma nao consegui fazer.

 

 

assim o sistema funciona bem, porem nao consigo fazer para que aparece o numero de comentarios na frente, alguem pode me dar um help ai???

obrigado desde ja

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, a solução está em:

http://forum.imasters.com.br/index.php?/topic/408074-aviso-de-novo-comentario/page__view__findpost__p__1606007

 

só fazer da forma que eu disse.

Não precisa complicar, ou voltar do inicio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eai tudo joia?

 

então da forma que você falou deu "certo", porem nao consigo deixar assim:

 

24/09/2010 - Titulo da Noticia (numero de comentarios caso tenha)...leia mais

 

deixar da forma acima e com link para cada noticia, to tentando, juro que estou, mais nao to conseguindo nao.

 

se puder dar um help, agradeço e muito...

 

abs e obrigado desde ja

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.