Galera que tipo de mensagem de erro essa, o que ela que dizer

29/01/2016

Notice: Trying to get property of non-object in C:\EasyPHP-Devserver-16.1\eds-www\login\comentario.php on line 61
<?php
	mysql_connect('localhost','root','');
	mysql_select_db('loginsenha');
?>

<!-- css-->
<link rel="stylesheet" type="text/css" href="css/style.css" media="all" />

<!-- importação javascript -->
<script type="text/javascript" src="js/jquery-1.12.0.min.js"></script>
<script type="text/javascript" src="js/funcao.js"></script>
<body>
    <div id="geral">
    
    <?
	
  $busca = mysql_query("SELECT * FROM comentario");
	 $contaComents = mysql_num_rows($busca);
	 
	while($linha = mysql_fetch_object($busca)){
	 $titulo = $linha->titulo;
	 $conteudo = $linha->conteudo;

  ?>    
       <div class="postagem">
       <h2><?php  echo $titulo; ?></h2>
       <p><?php  echo $conteudo; ?></p>
         
         
         
         <span class="abre_coment">Comentarios</span>
              
              <div id="comentarios">
              <form action="" method="post" name="form_comentario" id="form_comentario">
                  <input type="text" name="nome_comentario" value="Digite seu nome" class="campo" />
                  <input type="text" name="comentario" size="50" value="Digite seu comentario" class="campo" />
                 <input type="hidden" name="acao" value="preenchido" />
        <input type="submit" name="botao" style="display:none" />
              </form>
         
         <?php
	if(isset($_POST['acao']) && $_POST['acao'] == 'preenchido'){
		$comentario = trim($_POST['comentario']);
		
		if(empty($comentario)){
			echo "<script>alert(\"Preecha todos os campos\");</script>";
		}else{

			$inserirDados = mysql_query("INSERT INTO comentarios (login, comentario) VALUES ('$login','$comentario')");
			echo "<script>alert(\"Enviado com Sucesso!\");</script>";
			header("Location: admin.php");
		}
	}
?>

<?php
	$selecionarDados = mysql_query("SELECT * FROM comentarios ");
	$contaComents = mysql_num_rows($selecionarDados);
	
			while($campos = mysql_fetch_array($selecionarDados)){
		   $comentario = $campos->comentario;
			
?>
         
                   <div class="comentarios">
                   <strong>Nome:</strong>
                   <p>Comentario: <?php  echo $comentario; ?></p>
                 
                 
                 
                   <span class="abre_respostas">Respostas</span>
                  
                   <div id="respostas">
                     <div class="respostas"> 
                     <strong>Nome</strong>
                     <p>Resposta</p>
                     </div>
                     <form action="" method="post" name="form_respostas" id="form_respostas" style="padding:10px;">
                     <input type="text" name="nome_resposta" value="Digite seu nome" class="campo" />
                       <input type="text" name="respostas" value="Digite sua resposta" class="campo" size="40"/>
                     </form>
                   </div>
                   </div>
              </div><!-- comentarios -->
          </div><!-- classe o postagem -->
          <?
  }
 }
	
          ?>
     </div><!-- geral -->
</body>


exatamente nesta linha, será que vocês poderiam me dizer o que é?

<?php
	$selecionarDados = mysql_query("SELECT * FROM comentarios ");
	$contaComents = mysql_num_rows($selecionarDados);
	
			while($campos = mysql_fetch_array($selecionarDados)){
		   $comentario = $campos->comentario;
			
?>

PHP

Hiago Orneles

Melhor resposta

29/01/2016

Vou lançar uma campanha no fórum "use a documentação oficial até dormindo" rsrsrsrsr ... brincadeiras a parte vamos ao erro, apesar que vc começou postando o erro como "mysql_" e terminou usando "mysqli_", meio confuso!

Acessando a documentação oficial da extensão mysqli_ podemos encontrar o texto abaixo:
[img]http://arquivo.devmedia.com.br/forum/imagem/269142-20160129-161153.png[/img]

Isso quer dizer que como vc não está passando o segundo parâmetro (opcional) no seu código, entende-se que a array de retorno poderá ser acessada como MYSQLI_ASSOC ou MYSQLI_NUM e não com OBJETO:
while($campos = mysqli_fetch_array($selecionarDados)){
$comentario = $campos->comentario;


Então vc deve acessar o valor das seguintes maneiras:
$comentario = $campos[indice_campo_numerico];
OU
$comentario = $campos['comentario'];


Mais uma vez, usem a documentação vocês podem aprender demais com ela!

William (devwilliam)

Responder Citar

Outras Respostas

29/01/2016

Karine Sobral

Já tinha visto algo parecido, tem haver com o isset()...
Responder Citar

29/01/2016

Hiago Orneles

Como asim vc saberia me dizer?
Responder Citar

29/01/2016

Karine Sobral

Me confirme se a linha de erro é essa:
 if(isset($_POST['acao']) && $_POST['acao'] == 'preenchido')
Responder Citar

29/01/2016

Hiago Orneles

é essa

<?php
$selecionarDados = mysqli_query($iconexao,"SELECT * FROM comentarios ");
$contaComents = mysqli_num_rows($selecionarDados);

while($campos = mysqli_fetch_array($selecionarDados)){
$comentario = $campos->comentario;

?>
Responder Citar

29/01/2016

Hiago Orneles

Me confirme se a linha de erro é essa:
 if(isset($_POST['acao']) && $_POST['acao'] == 'preenchido')

não é essa
é essa

<?php
$selecionarDados = mysqli_query($iconexao,"SELECT * FROM comentarios ");
$contaComents = mysqli_num_rows($selecionarDados);

while($campos = mysqli_fetch_array($selecionarDados)){
$comentario = $campos->comentario;

?>
Responder Citar

29/01/2016

Hiago Orneles

Me confirme se a linha de erro é essa:
 if(isset($_POST['acao']) && $_POST['acao'] == 'preenchido')

não é essa
é essa

<?php
$selecionarDados = mysqli_query($iconexao,"SELECT * FROM comentarios ");
$contaComents = mysqli_num_rows($selecionarDados);

while($campos = mysqli_fetch_array($selecionarDados)){
$comentario = $campos->comentario;

?>
Responder Citar

29/01/2016

Hiago Orneles

Então deixa eu vê se entedir , esse e o meu codigo atual certo

while($campos = mysqli_fetch_array($selecionarDados)){
$comentario = $campos->comentario



então eu tenho que tranformar ele pra ficar assim
while($campos = mysqli_fetch_array($selecionarDados)){
$comentario = $campos['comentario'];


certo?
Responder Citar

29/01/2016

William (devwilliam)

Sim, dessa forma vc está acessando como "MYSQLI_ASSOC"!
Responder Citar

29/01/2016

Hiago Orneles

Amigo conseguir, obrigado a todos graças a vocês eu conseguir
Responder Citar

29/01/2016

Karine Sobral

Então era só o mysqli?
Responder Citar

29/01/2016

Jothaz

Onde voto para esta campanha!!!! kkkkkkkkk

Até entendo dúvidas de iniciantes, mas tem que pelo menos ler a referência.

Vou lançar uma campanha no fórum "use a documentação oficial até dormindo" rsrsrsrsr ... brincadeiras a parte vamos ao erro, apesar que vc começou postando o erro como "mysql_" e terminou usando "mysqli_", meio confuso! Acessando a documentação oficial da extensão mysqli_ podemos encontrar o texto abaixo: [img]http://arquivo.devmedia.com.br/forum/imagem/269142-20160129-161153.png[/img] Isso quer dizer que como vc não está passando o segundo parâmetro (opcional) no seu código, entende-se que a array de retorno poderá ser acessada como MYSQLI_ASSOC ou MYSQLI_NUM e não com OBJETO:
while($campos = mysqli_fetch_array($selecionarDados)){
$comentario = $campos->comentario;
Então vc deve acessar o valor das seguintes maneiras:
$comentario = $campos[indice_campo_numerico];
OU
$comentario = $campos['comentario'];
Mais uma vez, usem a documentação vocês podem aprender demais com ela!
Responder Citar

29/01/2016

Hiago Orneles

Não, tinha que ter isso
while($campos = mysqli_fetch_array($selecionarDados)){
$comentario = $campos['comentario'];


no lugar disso
while($campos = mysqli_fetch_array($selecionarDados)){
$comentario = $campos->comentario
Responder Citar

29/01/2016

William (devwilliam)

Onde voto para esta campanha!!!! kkkkkkkkk Até entendo dúvidas de iniciantes, mas tem que pelo menos ler a referência.


Então Jothaz, considero a documentação oficial do PHP umas das mais completas e legíveis, pois além de explicações tem exemplos práticos!

Falo isso porque temos ferramentas como o Delphi onde a antiga Embarcadero (atualmente IDERA) nunca deu a devida importância e até hoje acho uma documentação precária.
Responder Citar