deathseeker25 Posted April 12, 2006 at 01:23 AM Report #21792 Posted April 12, 2006 at 01:23 AM 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. 😁 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?
Ped@ntilva Posted April 15, 2006 at 11:30 AM Report #22184 Posted April 15, 2006 at 11:30 AM 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>';
deathseeker25 Posted April 15, 2006 at 10:36 PM Author Report #22292 Posted April 15, 2006 at 10:36 PM 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(); ?>
Ped@ntilva Posted April 15, 2006 at 11:10 PM Report #22304 Posted April 15, 2006 at 11:10 PM 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.
deathseeker25 Posted April 15, 2006 at 11:16 PM Author Report #22307 Posted April 15, 2006 at 11:16 PM 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... 🙂
pedrotuga Posted April 28, 2006 at 12:38 PM Report #24772 Posted April 28, 2006 at 12:38 PM 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?
deathseeker25 Posted April 29, 2006 at 06:47 PM Author Report #24849 Posted April 29, 2006 at 06:47 PM O problema já foi resolvido. 😛
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now