Jump to content
deathseeker25

Incrementa ao actualizar

Recommended Posts

deathseeker25

Boas,

Esta é daquelas dúvidas que vai beneficiar a comunidade, visto que o projecto que estou a desenvolver se destina a esta grande grupo que temos sido. :cheesygrin:

Acontece que escrevi este script:

<?php 
  
  require("dados_login.php");
  
  $ligacao=mysql_connect("$server","$utilizador","$password") or die("Impossivel ligar á base de dados. Contacte o administrador.");
  
  mysql_select_db($base_dados,$ligacao);
  
  $query=mysql_query("SELECT nome FROM errata ORDER BY id ASC");
  $query1=mysql_query("SELECT comentario FROM errata ORDER BY id ASC");
  
  $registo_nome=mysql_fetch_row($query);
  $registo_comentario=mysql_fetch_row($query1);
  
  $numero_registos=mysql_num_rows($query);
  
  
  for($i=0;$i<=$numero_registos;$i++)
  {
  		print("<p align=\"left\" class=\"style1\">O utilizador <b>$registo_nome[$i]</b> escreveu:<br /><br />
			   $registo_comentario[$i]</p>");
	}

	mysql_close();
	?>

O script tem como objectivo actualizar uma página com os comentários inseridos pelo utilizador. Vai buscar a informação á base de dados e coloca os comentários na página.

Acontece que sempre que actualizo a página, cria-se um novo registo na base de dados, o que provoca o preenchimento total da página com a estrutura dos comentários e sem informação nenhuma.

A pergunta é: como resolver este problema?

Share this post


Link to post
Share on other sites
Ped@ntilva

Não encontro erro algum mas,

Acho que é melhor fazeres so uma query, assim garantes mesmo que cada nome corresponde ao comentario:

 $query=mysql_query("SELECT nome, comentario FROM errata ORDER BY id ASC");

Assim não precisas de colocar o "\" no print (pelo menos eu prefiro assim):

print '<p align="left" class="style1">O utilizador <b>'.$registo_nome[$i].'</b> escreveu:<br /><br />'.$registo_comentario[$i].'</p>';

Share this post


Link to post
Share on other sites
deathseeker25

Boas,

Em primeiroo lugar, agradeço a ajuda Ped@ntilva. Já tinha acabado o script mas tinha-me esquecido de o postar aqui. Adoptei o método que referiste em relação á query, mas modifiquei algumas coisitas. Cá fica o código:

<?php 
  
  
  require("dados_login.php");
  
  $ligacao=mysql_connect("$server","$utilizador","$password") or die("Impossivel ligar á base de dados. Contacte o administrador.");
  
  mysql_select_db($base_dados,$ligacao);
  
 $query="SELECT nome,comentario FROM errata ORDER BY id ASC";

 $resultado=mysql_db_query($base_dados,$query);

 while($registo=mysql_fetch_array($resultado))
 	{
		$nome=$registo["nome"];
		$comentario=$registo["comentario"];
		print("<p align=\"left\" class=\"style9\">O utilizador <b>$nome</b> escreveu:<br />
												$comentario</p>");
	}

	mysql_close();
	?>

Share this post


Link to post
Share on other sites
Ped@ntilva

Eu muitas vezes também opto pelo while.

É muito mais simples.

E quanto mais simples é melhor.

O erro que tinhas não seria aqui?

for($i=0;$i<=$numero_registos;$i++)

Porque está a tentar ir buscar mais um registo que não existe, pois começas em 0.

Cumps.

Share this post


Link to post
Share on other sites
deathseeker25

Eu muitas vezes também opto pelo while.

É muito mais simples.

E quanto mais simples é melhor.

O erro que tinhas não seria aqui?

for($i=0;$i<=$numero_registos;$i++)

Porque está a tentar ir buscar mais um registo que não existe, pois começas em 0.

Cumps.

Acho que não, mas isso é uma questão de trocar o <= por < e verificar. Isso não justifica a adição de um novo comentário sempre que se actualizava a página... :)

Share this post


Link to post
Share on other sites
pedrotuga

epa...

eu tambem usaria o while pois as funcoes mysql_fetch_blablabla incrementam o ponteiro automaticamente, acho mais eficiente e simples. Mas isso está um pouco no dominio das preferencias.

epa... mas n tou a perceber uma coisa... o problema que dizes acontecer não está relacionado com este código. Onde é que está o insert?

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

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.