Ir para conteúdo

POWERED BY:

Arquivado

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

Reebeecaaa

[Resolvido] Lentidão

Recommended Posts

Bom dia,

Sou nova aqui no fórum e nem sei se o que vou postar é aqui mesmo, mas vamos lá.

Estou criando um sistema de cadastro de clientes.

Só que o cliente tem que se autenticar para acessar seus dados.

O problema esta aí.

Quando faço uma simples consulta para que ele procure o tal cliente, ele demora muito para tentar encontrar e ainda assim não o encontra.

A consulta:

$sql = "SELECT * FROM cliente where email='$email' and senha = password('$senha')";

Tem vezes que ele fica na mesma página e tem outras que ele apresenta esse erro:

Fatal error: Maximum execution time of 100 seconds exceeded in ../cli.class.php on line 178

E nessa linha a única coisa que tem é o recebimento da consulta feita.

Ex:

$_SESSION['nome'] = ($reg["nome"]);

Pensei que fosse alguma coisa com a consulta, porém fiz a mesma consulta no PHPMyAdmin e não apresentou nenhuma lentidão.

Vale dizer que foi testado em duas hospedagens diferentes.

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Rebeca,

 

E como é o restante do código que faz a consulta ? oque você está usando ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi William,

vou colocar o caminho que ele faz:

ele vai para a função logar :

function logar(){
	$login = $_POST['login'];
	$senha = $_POST['senha'];
	$cli = new Cliente();
	$cli->Autentica($login,$senha);

}

depois a função Autentica:

function Autentica($email, $senha){
	$c = new Conexao();
	$sql = "SELECT * FROM cliente where email='$email' and senha = password('$senha')";		
	$r = $con->executaSql($sql);
	$n = mysql_num_rows($r);
	if ($n == 1){
	      for ($i=1;$i=$n;$i++){
			$reg = mysql_fetch_array($r);
			$_SESSION['id'] = ($r["id"]);
			$_SESSION['nome'] = ($r["nome"]);

a função que faz ele executar:

function executaSql($sql){
	$result = mysql_query( $sql) or die ("Erro:" .mysql_error($this->banco));
	return $result;
}

Não acredito que o problema seja na conexão, pois na hora de inserir ele vai certinho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No insert você esta fazendo da mesma forma? Esta usando addslashes() ou algo do gênero? Esta desconsiderando espaços em branco?

 

Verifique como a informação esta sendo armazenada no banco de dados e como o comando select esta enviado a consulta e compare os dois.

 

Quantos registros há nesta tabela?

Compartilhar este post


Link para o post
Compartilhar em outros sites

for ($i=1;$i=$n;$i++){

isso aqui é um loop infinito ?

 

e pra que o loop ?

remova esse for dai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

for ($i=1;$i=$n;$i++){

isso aqui é um loop infinito ?

 

Bem observado, a lógica do for esta incorreto. Parece descenessário, como o próprio William sugere.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prog e William,

 

verdade, aquele loop foi desnecessário

removi ele e funcionou direitinho,

 

muito obrigada !

 

Que bom que o William viu logo. :clap:

 

Se não iriamos ficar dando voltas e voltas procurando um problema que não existia. :wacko:

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.