Ir para conteúdo

POWERED BY:

Arquivado

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

cauetc

[Resolvido] tentativa de inclusao de comentario num sys de news

Recommended Posts

seguinte...

 

tenho o arquivo que lista as noticias do meu site

estou tentando botar um sistema de comentarios.....

 

criei uma tabela de comentarios....

 

soh que....

 

queria que ele listasse apenas os comentarios que em sua tabela contem VER=on e listasse todos os comentarios que contem o mesmo numero do id da noticia... me entendem?

 

<?
include "conexao.php";

$idnoticia = $_GET["idnoticia"];

$acharcoments = "SELECT * FROM qqart_ncoment WHERE idnoticia=$idnoticia AND ver=on";
$query = mysql_query($acharcoments);
$rs = mysql_num_rows($query);

if($rs > 0) {
	
	while($dados = mysql_fetch_object($query)) {
		

		$nid = $dados->nid;
		$autor = $dados->autor;
		$email = $dados->email;
		$comentario = $dados->comentario;
		$data = $dados->data;
		$hora = $dados->hora;
		$idnoticia = $dados->idnoticia;
		$ver = $dados->ver;
		

		echo "id:".$nid."<br>";
		echo "autor:".$autor."<br>";
		echo "mail".$email."<br>";
		echo "cment".$comentario."<br>";
		echo "data:".$data."<br>";
		echo "hora:".$hora."<br>";
		echo "idnoticia:".$idnoticia."<br>";
		echo "ver?:".$ver."<br><br><br>";
		
	}
}

o erro é o seguinte:

 

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/a8839486/public_html/TESTES/testeblog/LALALANEWS/vercoment2.php on line 9

 

 

é nessa linha q tenho que mexer né? $acharcoments = "SELECT * FROM qqart_ncoment WHERE idnoticia=$idnoticia AND ver=on";

 

o que eu faço?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só coloca Assim

 

 

$acharcoments = "SELECT * FROM qqart_ncoment WHERE idnoticia='".$idnoticia."' AND ver='on'";

 

O erro acontece quando o retorno da query não é um resource válido para o fetch_array

 

EX: o retorno da query é vazio

então da erro no fetch

Compartilhar este post


Link para o post
Compartilhar em outros sites

consegui!! valeu mesmo cara!

 

mas ainda tenho certeza que irei perguntar sobre esse sisteminha ahuehuaehuae.... nao consegui acha nada na net entao to adaptando...

Compartilhar este post


Link para o post
Compartilhar em outros sites

oq você tinha dito estava certo! somado a um errinho de digitacao meu! hehehehhehehehhe mas bom.... tenho outra duvida...

 

agora estou fazendo uma parte na 'sessao admin' q lista todos os comentarios novos que nao foram revisados (todos estao ver=off) ....

eu consegui fazer ele mudar pra ver=on....

 

mas o problema é que ele nao deleta a mesma id do comentario q eu tendo deletgar!!! ele sempre deleta a id de maior valor, e nao a que eu clico... deem uma olhada no codigo:

 

<?php

include "conexao.php";

$acharcoments = "SELECT * FROM qqart_ncoments WHERE ver='off'";
$query = mysql_query($acharcoments);
$rs = mysql_num_rows($query);

if($rs > 0) {
	
	while($dados = mysql_fetch_object($query)) {
		

		$nid = $dados->nid;
		$autor = $dados->autor;
		$email = $dados->email;
		$comentario = $dados->comentario;
		$data = $dados->data;
		$hora = $dados->hora;
		$idnoticia = $dados->idnoticia;
		$ver = $dados->ver;
		

		echo "id:".$nid."<br>";
		echo "autor:".$autor."<br>";
		echo "mail".$email."<br>";
		echo "cment".$comentario."<br>";
		echo "data:".$data."<br>";
		echo "hora:".$hora."<br>";
		echo "idnoticia:".$idnoticia."<br>";
		echo "ver?:".$ver."<br>";
		echo "<form id=form1 name=form1 method=post action=".$PHP_SELF."><input type=submit name=Submit value=ativar style=cursor:pointer /></form><br><br><br>";
		
	}
}

if(isset($_POST["Submit"])) {

	@ini_set('display_errors', '1');
	error_reporting(E_ALL);

	include("conexao.php");

	mysql_query("UPDATE qqart_ncoments SET ver ='on' WHERE nid='$nid'");
	mysql_close();
	?><script language="JavaScript">
	<!--
	alert("Comentário ativo!");

	//-->
	</script><?
}
?>

 

alguem sabe dize??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então,

 

o que está acontecendo é que o campo $nid sempre vai estar valorizado com o último id, porque você faz um while e valoriza ele.... então após o término do while ele estará com o último valor.

Você tem que colocar o update pra cima, e fazer alguns ajustes. Tenta assim:

 

<?php

include "conexao.php";

if(isset($_POST["Submit"])) {


	@ini_set('display_errors', '1');
	error_reporting(E_ALL);

	include("conexao.php");
	$nid = $_POST[nid]; //recupera o id da linha selecionada no formulário
	mysql_query("UPDATE qqart_ncoments SET ver ='on' WHERE nid='$nid'");
	mysql_close();
	?><script language="JavaScript">
	<!--
	alert("Comentário ativo!");

	//-->
	</script><?
}


$acharcoments = "SELECT * FROM qqart_ncoments WHERE ver='off'";
$query = mysql_query($acharcoments);
$rs = mysql_num_rows($query);

if($rs > 0) {
	
	while($dados = mysql_fetch_object($query)) {
		

		$nid = $dados->nid;
		$autor = $dados->autor;
		$email = $dados->email;
		$comentario = $dados->comentario;
		$data = $dados->data;
		$hora = $dados->hora;
		$idnoticia = $dados->idnoticia;
		$ver = $dados->ver;
		

		echo "id:".$nid."<br>";
		echo "autor:".$autor."<br>";
		echo "mail".$email."<br>";
		echo "cment".$comentario."<br>";
		echo "data:".$data."<br>";
		echo "hora:".$hora."<br>";
		echo "idnoticia:".$idnoticia."<br>";
		echo "ver?:".$ver."<br>";
		echo "<form id=form1 name=form1 method=post action=".$PHP_SELF."><input type=submit name=Submit value=ativar style=cursor:pointer />
		echo '<input name="nid" type="hidden" id="nid" value="'.$nid.'" />';//envia id via POST
</form><br><br><br>";
		
	}
}


?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Notice: Use of undefined constant nid - assumed 'nid' in /home/a8839486/public_html/TESTES/newadm/admin/ativarcomentarios.php on line 11

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas ja nao tem o error_reporting(E_ALL); ??? nao funcionaria??

 

botei assim

error_reporting(E_ALL);

ini_set('error_reporting', E_ALL);

 

nao funcionou

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenho tambem mais 2 duvidas....hehehehhehe

 

 

1o .. nao estou cnseguindo listar TODAS as novidades, estranho pois nao sei o que mudei pra acontecer isso, antes eu conseguia.....

 

... tambem queria contar quantos comentarios tem em cada noticia(quantos numeros iguais tem na coluna idnoticia da tabela de comentarios) pra mostrar o numero antes de abrir os comentarios

como posso fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

alguem pode ajudar??? apenas preciso que ele de um SET pra on nessa id certa.... oq esta acontecendo é que da dando akele erro ali e nao ta modificando....

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual o erro atual ?

 

em que linha ocorre ?

 

se for numa instrucao sql post um echo do que ela contem aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites

Notice: Use of undefined constant id - assumed `id' in /home/a8839486/public_html/TESTES/newadm/admin/ativarcomentarios.php on line 11

 

a linha 11 eh esta:

$id = $_POST[id]; //recupera o id da linha selecionada no formulário

<?php

include "../conexao.php";

if(isset($_POST["Submit"])) {


	@ini_set('display_errors', '1');
	error_reporting(E_ALL);

	$id = $_POST[id]; //recupera o id da linha selecionada no formulário
	mysql_query("UPDATE subsolo_ncoments SET ver ='on' WHERE id='$iid'");
	mysql_close();
	?><script language="JavaScript">
	<!--
	alert("Comentário ativo!");
	//-->
	</script><?
}


$acharcoments = "SELECT * FROM subsolo_ncoments WHERE ver='off'";
$query = mysql_query($acharcoments);
$rs = mysql_num_rows($query);

if($rs > 0) {
	
	while($dados = mysql_fetch_object($query)) {
		

		$id = $dados->id;
		$autor = $dados->autor;
		$email = $dados->email;
		$comentario = $dados->comentario;
		$data = $dados->data;
		$hora = $dados->hora;
		$idnoticia = $dados->idnoticia;
		$ver = $dados->ver;
		

		echo "id:".$id."<br>";
		echo "autor:".$autor."<br>";
		echo "mail".$email."<br>";
		echo "cment".$comentario."<br>";
		echo "data:".$data."<br>";
		echo "hora:".$hora."<br>";
		echo "idnoticia:".$idnoticia."<br>";
		echo "ver?:".$ver."<br>";
		echo "<input name='id' type='hidden' id='id' value=".$id.">";  //envia id via POST
echo "<form id=form1 name=form1 method=post action=".$PHP_SELF."><input type=submit name=Submit value=ativar style=cursor:pointer /></form><br><br><br>";

	}
}

?>

sabe?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o id nao deveria estar entre aspas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

eis o código solucionado!

 

<?php

$iid = $_POST["iid"];

if(isset($_POST["enviar"])) {
	@ini_set('display_errors', '1');
	error_reporting(E_NOTICE);
	
	include "../conexao.php";	
	mysql_query("UPDATE subsolo_ncoments SET ver = 'on' WHERE id = ".$iid."");
	mysql_close();
	
	?><script language="JavaScript">
	<!--
	alert("Comentário ativo!");
	//-->
	</script><?
}


include "../conexao.php";
$acharcoments = "SELECT * FROM subsolo_ncoments WHERE ver='off'";
$query = mysql_query($acharcoments);
$rs = mysql_num_rows($query);
if($rs > 0) {
	while($dados = mysql_fetch_object($query)) {
		
		$id = $dados->id;
		$autor = $dados->autor;
		$email = $dados->email;
		$comentario = $dados->comentario;
		$data = $dados->data;
		$hora = $dados->hora;
		$idnoticia = $dados->idnoticia;
		$ver = $dados->ver;

		echo "id:".$id."<br>";
		echo "autor:".$autor."<br>";
		echo "mail".$email."<br>";
		echo "cment".$comentario."<br>";
		echo "data:".$data."<br>";
		echo "hora:".$hora."<br>";
		echo "idnoticia:".$idnoticia."<br>";
		echo "ver?:".$ver."<br>";
		echo "<form id=form1 name=form1 method=post action=".$PHP_SELF.">";
		echo "<input name='iid' type='hidden' id='iid' value=".$id.">";
		echo "<input type=submit name=enviar value=Ativar style=cursor:pointer />";
		echo "</form><br><br><br>";
	}
	mysql_close();
}

?>

 

e erro estava que o input do id estava antes do form.. quando fui organizar akele echo inteiro me deparei com isso! ... foi otimo porque quebrei cabeça e aprendi até mais coisas! hehe.... valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

que bom que resolveu mas voce tambem colocaou as aspas onde nao tinha

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.