• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

deathseeker25

Incrementa ao actualizar

7 mensagens neste tópico

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. :biggrin:

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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>';

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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();
	?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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... :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora