Erro Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/config.php on line 47

Enviada por Thiago Ferreira 
Segue o código, sou iniciante e não consigo resolver de jeito nenhum:


<?php

//// ARQUIVO DE CONFIGURAÇÃO DO SISTEMA E CONEXÃO COM BANCO DE DADOS ///////////

$s_host="localhost";
$s_db="a";
$s_user="ac";
$s_pass="a3";


mysql_connect($s_host,$s_user,$s_pass) or die("Conexão Falhou!");
mysql_select_db("$s_db") or die("Conexão com o Banco de Dados Falhou!");


//include"functions/geral.php";


if(empty($uid)){
$uid = $HTTP_POST_VARS['uid'];
}

if(!empty($uid)){

$sql = mysql_query("SELECT * FROM cdc_usuarios WHERE uid = '$uid'");
$row=mysql_fetch_array($sql);
$usa = $row['usuario'];
$psw = $row['senha'];

}


if(empty($usa)){
$usa = $HTTP_POST_VARS['usa'];
$conteudo = $HTTP_POST_VARS['conteudo'];
}
if(empty($psw)){
$psw = $HTTP_POST_VARS['psw'];
}


if($usa==''){
$conteudo="login";
}else{ /// se o usuArio já digitou o login


$resultado = mysql_query("SELECT * FROM cdc_usuarios WHERE usuario = '$usa'");
$linhas = mysql_num_rows($resultado);
if($linhas == 0) //testa se a consulta retornou algum registro
{

echo'<script>alert("Por favor, digite um usuário válido!");</script>';
$conteudo="login";

}
else
{ /// se o usuario é valido, testa a senha

if($psw==""){ // se a senha for vazia
echo'<script>alert("Usuário ou senha incorreto!");" </script>';
$conteudo="login";


}else{ // se a senha não for vazia

if ($psw != mysql_result($resultado, 0, "senha")) //confere senha
{
echo'<script>alert("usuário ou senha incorreto!");</script>';
$conteudo="login";

}
else //usuários e senha corretos
{

//$conteudo="";
$res_per = mysql_query("SELECT u.id_usuario, u.uid, f.funcionario FROM cdc_usuarios u, cdc_funcionarios f WHERE u.usuario = '$usa' AND u.id_funcionario=f.id_funcionario");
$v = mysql_fetch_array($res_per);
$id_usa_per = $v['id_usuario'];
$nome_func = $v['funcionario'];
$uid = $v['uid'];

}
} // fim do else 'se a senha não for vazia'

} /// fim else 'se já existe usuario'

} /// fim do if $usa=''



?>
reveja seu select:

SELECT * FROM cdc_usuarios WHERE usuario = '$usa'

veja se o nome da tabela 'cdc_usuarios' esta correto
veja se existe mesmo o campo 'usuario'

Falou.
Veja os comentário que fiz no seu código
isso pode lhe ajudar a resolver o problema
e os erros do código estão no começo e ta dando problema no restante do seu código

<?php

//// ARQUIVO DE CONFIGURAÇÃO DO SISTEMA E CONEXÃO COM BANCO DE DADOS ///////////

$s_host="localhost";
$s_db="a";
$s_user="ac";
$s_pass="a3";


mysql_connect($s_host,$s_user,$s_pass) or die("Conexão Falhou!");
mysql_select_db("$s_db") or die("Conexão com o Banco de Dados Falhou!");


//include"functions/geral.php";

//Aqui: de onde vem $uid? como é que vc usa uma variável antes de ser criada, ficou confuso, e se vem de outro formulário ta resgatando errado não se usa mais $HTTP_POST_VARS[], foi decontinuado faz tempo, agora se usa $_POST[].
if(empty($uid)){
$uid = $HTTP_POST_VARS['uid'];
}

if(!empty($uid)){

$sql = mysql_query("SELECT * FROM cdc_usuarios WHERE uid = '$uid'");
$row=mysql_fetch_array($sql);
$usa = $row['usuario'];
$psw = $row['senha'];

}

//Aqui segue a mesma lógica como vc cria $usa antes de receber de um formulário? e de novo não existe $HTTP_POST_VARS[]
if(empty($usa)){
$usa = $HTTP_POST_VARS['usa'];
$conteudo = $HTTP_POST_VARS['conteudo'];
}
if(empty($psw)){
$psw = $HTTP_POST_VARS['psw'];
}


if($usa==''){
$conteudo="login";
}else{ /// se o usuArio já digitou o login


$resultado = mysql_query("SELECT * FROM cdc_usuarios WHERE usuario = '$usa'");
$linhas = mysql_num_rows($resultado);
if($linhas == 0) //testa se a consulta retornou algum registro
{

echo'<script>alert("Por favor, digite um usuário válido!");</script>';
$conteudo="login";

}
else
{ /// se o usuario é valido, testa a senha

if($psw==""){ // se a senha for vazia
echo'<script>alert("Usuário ou senha incorreto!");" </script>';
$conteudo="login";


}else{ // se a senha não for vazia

if ($psw != mysql_result($resultado, 0, "senha")) //confere senha
{
echo'<script>alert("usuário ou senha incorreto!");</script>';
$conteudo="login";

}
else //usuários e senha corretos
{

//$conteudo="";
$res_per = mysql_query("SELECT u.id_usuario, u.uid, f.funcionario FROM cdc_usuarios u, cdc_funcionarios f WHERE u.usuario = '$usa' AND u.id_funcionario=f.id_funcionario");
$v = mysql_fetch_array($res_per);
$id_usa_per = $v['id_usuario'];
$nome_func = $v['funcionario'];
$uid = $v['uid'];

}
} // fim do else 'se a senha não for vazia'

} /// fim else 'se já existe usuario'

} /// fim do if $usa=''



?>
Estranho, pois o sistema loga certinho, mas quando faço outras ações ele volta pra tela de login.
Amigo para manter o usuário logado, você tem que criar uma session ou cookie.
E no seu código não estou vendo nada disso. Reveja seus conceitos e procure na net sobre "session em php" e "cookie em php".

Falou.
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.