Ir para conteúdo

Arquivado

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

Tiago Vareta

[Resolvido] Não apresenta dados da BD

Recommended Posts

Boas pessoal estou a criar um script que vai ligar a uma bd e coloca os registos em uma tabela e indica:

- Nº de campos

- Número total de registo seleccionados

- Registos afectados pela query

 

Estas informações aparecem bem:

Nº de campos 3

Número total de registo seleccionados = 3 e afectados pela query = 3

Aparece também a primeira linha da tabela com os cabeçalhos.

 

O problema é que não aparecem os 3 registos na tabela.

O código é o seguinte:

 

<?php
mysql_connect("localhost", "root", "") or die("problemas na ligação ao mysql");
mysql_select_db("testedb") or die("problemas na ligação ao mysql");
$sql = "select * from teste order by nome asc";
$num_reg = mysql_affected_rows();
$resultado = mysql_query($sql);
$num_reg = mysql_num_rows($resultado);
$num_campos = mysql_num_fields($resultado);
print ("Nº de campos $num_campos <p>");
print ("Número total de registo seleccionados = $num_reg");
print (" e afectados pela query = $num_reg<p>");
if ($num_reg == 0 ) {
	print ("Não ha registos na base de dados");
	}elseif ($num_reg > 0) {
		print ("<table border=2 width=100% align=center bgcolor=\"#fff000\">");
		print ("<td> <p align=center> id</td><td> <p align=center>nome</td><td> <p align=center>telefone</td><tr>");
		for ($linha = 0;$linha < $num_Reg;$linha++) {
			for ($coluna = 0;$coluna < $num_campos;$coluna++) {
				$field = mysql_field_name ($resultado, $coluna);
				$campo = mysql_result($resultado, $linha, "$field");
				print (" <td>$campo</td>");
				}
			print ("<tr>");
			}
		}
print ("</table");
mysql_free_result($resultado);
mysql_close();
?>

Será que alguem me pode dizer porque não aparecem os 3 registos na tabela? Agradecia imenso a vossa ajuda...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendeu muito de MySql mas você não teria que jogar mysql_connect em uma variavel?

E o mesmo para o mysql_select_db...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é que não aparecem os 3 registos na tabela.

O código é o seguinte:

//...
$num_reg = mysql_num_rows($resultado);
//...
		for ($linha = 0;$linha < $num_Reg;$linha++) {
//...

Será que alguem me pode dizer porque não aparecem os 3 registos na tabela? Agradecia imenso a vossa ajuda...

 

Tiago Vareta,

 

No PHP, os nomes de variáveis são sensíveis a caixa (num_reg é diferente de num_Reg), corrija a seguinte linha:

 

for ( $linha = 0 ; $linha < $num_reg ; $linha++ ){

 

Existem outros erros no seu código e algumas redundâncias também, sugiro que revise-o antes de colocar em produção.

 

Não entendeu muito de MySql mas você não teria que jogar mysql_connect em uma variavel?

 

Não necessariamente Holt, apenas se você precisar trabalhar com o conteúdo dessa variável (ex: trabalhar com mais de uma conexão)

 

Se você estiver trabalhando com apenas uma conexão, todas as outras funções procurarão uma conexão aberta e, se encontrarem, a usarão.

 

E o mesmo para o mysql_select_db...

 

A mysql_select_db retorna um boolean, nesse caso basta verificar se a seleção do banco de dados foi bem sucedida; Armazenar esse valor em uma variável é desnecessário e só irá desperdiçar memória.

 

Veja o book das funções MySQL é importante saber o comportamento das ferramentas com que se está trabalhando: http://br.php.net/manual/en/ref.mysql.php

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado João...

Provavelmente vou dar uma estudada em MySQL esta semana ou na próxima...

Ainda não tive tempo e paciência...

Enquanto isso vou "favoritando" as páginas para estudar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia, desde já quero agradecer a vossa ajuda!

João era mesmo esse o problema...

Como ainda sou iniciante nesta matéria peço desculpa por esta fala de atenção...

Muito obrigado a ambos...

Compartilhar este post


Link para o post
Compartilhar em outros sites

era mesmo esse o problema...

 

Legal que tenha resolvido Tiago...

 

Apenas não deixe de ler o link que passei sobre as funções MySQL, elas te ajudarão muito em problemas futuros.

 

Como ainda sou iniciante nesta matéria peço desculpa por esta fala de atenção...

 

Jamais se desculpe por estar aprendendo.

 

Estude muito, nunca deixe de ler as referências que lhe são passadas e sempre que tiver algum problema lembre-se que o fórum continua aqui.

 

;)

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.