[HELP] php & mysql:"supplied argument is not a valid MySQL result resource"

Neo4

Banido
Boas pessoal estou a iniciar-me nestas linguagens (php e mysql) e ando a fazer um sistema de login com capacidade para consultar e editar os dados. para aceder aos dados do utilizador eu faço:
echo "Benvindo $username <p>";
$query = mysql_query("SELECT * FROM membros WHERE user='$username'");
$row=mysql_fetch_array($query);

e conforme da na telha ao apache (?) ou la a quem "compila isto" tanto funciona tudo direito como começo a escrever mais codigo nao relacionado e aparece o erro:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\aposta\area_membros.php on line 28

para garantir que nao era nada com o codigo novo apago tudo e o erro continua. ontem ficou a dar tudo direito. hoje nao mexi em nada e ja voltou o mesmo erro :|

alguem pode dar uma ajuda?

obrigado
 
1. O que é o $username? Ambíguo?
2. Quando só queres um resultado especifico usa-se por norma o "LIMIT 1" no fim da query.
3. Por norma usa-se "`" para definir tabelas e campos, ou seja, deverá ficar:
Código:
$query = mysql_query("SELECT * FROM `membros` WHERE `user`='$username'");
4. Só se deve ir buscar todos os resultados quando é mesmo preciso, escolhendo apenas os que precisas irá demorar menos e irá gastar menos processamento, ou seja, ficará mais optimizado.
5. Podes verificar se existe esse usuário ou não usando o comando mysql_num_rows(); e assim, se for 0 não fazer o fetch array, pois não é possível.
6. Poderás também por um @ atras do mysql_fetch_array, assim ele ignora os warnings dados por esse comando.
 
1. O que é o $username? Ambíguo?
2. Quando só queres um resultado especifico usa-se por norma o "LIMIT 1" no fim da query.
3. Por norma usa-se "`" para definir tabelas e campos, ou seja, deverá ficar:
Código:
$query = mysql_query("SELECT * FROM `membros` WHERE `user`='$username'");
4. Só se deve ir buscar todos os resultados quando é mesmo preciso, escolhendo apenas os que precisas irá demorar menos e irá gastar menos processamento, ou seja, ficará mais optimizado.
5. Podes verificar se existe esse usuário ou não usando o comando mysql_num_rows(); e assim, se for 0 não fazer o fetch array, pois não é possível.
6. Poderás também por um @ atras do mysql_fetch_array, assim ele ignora os warnings dados por esse comando.

bem nao sei o que é um ambiguo. mas o username é o parametro do user que é passado quando ele faz o login. eu quero todos os resultados para um dado username (os resultados é nome, email, password) eu nao faço o fetch pois para estar naquela zona o user fez o login logo tem que estar na base dados.

esquesito é que agora já da e nao mexi em nada ate vou colar aqui a ver se descobrem alguma diferença:
Código:
echo "Benvindo $username <p>"; 
	$query = mysql_query("SELECT * FROM membros WHERE user'$username'");
	$row=mysql_fetch_array($result);

outro que continua a dar esse erro é este:
Código:
	$query2 = mysql_query("SELECT * FROM jogo WHERE user='$username'");
	if(mysql_num_rows($query2)==0) 
		echo "Não ha dados para a tabela";
	else
	{	
		while($data=mysql_fetch_array($query2)){
			$field1= $data['casa'];
			$field2= $data['dep'];
			$field3= $data['bo'];
			$field4= $data['gan'];
			$field5= $data['perd'];
			$field6= $data['com'];
			$field7= $data['tol'];

			echo "$field1<br>";
			echo "$field2<br>";
			echo "$field3<br>";
			echo "$field4<br>";
			echo "$field5<br>";
			echo "$field6<br>";
			echo "$field7<p>";
			}
	}

EDIT:

apesar do 1º erro estar corrigido, a pagina para que vamos depois disso volta a ter o mesmo erro na mesma funcao mysql_fetch_array...
estou a ficar doido com isto!

EDIT2:
ERRO descoberto! eu estava a usar o codigo:
require_once('Connections/ligacao.php');
para fazer a ligaçao ha BD, substitui pelo codigo que estava dentro desse ficheiro em todos os ficheiros e o problema ficou resolvido!
 
Última edição:
Back
Topo