1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

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

Discussão em 'Web Development' iniciada por Neo4, 8 de Outubro de 2008. (Respostas: 2; Visualizações: 1108)

  1. Neo4

    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
     
  2. anjo2

    anjo2 Power Member

    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.
     
  3. Neo4

    Neo4 Banido

    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: 9 de Outubro de 2008

Partilhar esta Página