Jump to content


Photo

[erro] Resultado De Pesquisa Sql


  • Faça o login para participar
5 replies to this topic

#1 carneiro

carneiro

    programador web

  • Usuários
  • 155 posts
  • Sexo:Não informado
  • Localidade:cascavel - pr
  • Interesses:programação e design para web

Posted 14/02/2006, 20:40

Olah..
Estou com um problema que realmente não estou intendendo.. ja aconteceu isso antes mas agora não consigo resolver..

Especificação
Estou rodando local ( PHP5 - Apache 2 - MySQL5 )

Descrição
Preciso confirmar se uma instrução SQL retornou 0 registros ou > 0 registros

Problema
Quando é retornado mais de 0 registros o Código funciona normal.
Quando não é encontrado nenhum registro, da instrução que teria que mostrar até o final do código não aparece nada, fica em branco e não mostra erro.

$confirmacao = mysql_query("SELECT * FROM usuario WHERE DscEmail = '$login' AND DscSenha ='$senha'", $db); 
$contagem = mysql_num_rows($confirmacao) or die(mysql_error()); 
$atributo = mysql_fetch_array($confirmacao)or die(mysql_error());

if($contagem == 1){
     echo 'Login confirmado';
}else{
    echo 'Erro Login'; 
}

Neste caso se $contagem == 1 irá mostrar Login confirmado
Mas se $contagem != 1 ele não mostra nada

* Fiz um teste para mostrar o valor de $contagem
Quando não foi encontrado nenhum registro
$contagem = ;
Quando foi encontrado o registro
$contagem = 1;


Agora se eu mudar para :
if($contagem != 1){
     echo 'Login confirmado';
}else{
    echo 'Erro Login'; 
}

Se existir um registro, ele vai entrar dentro do else.
E mostra Erro Login
Quer dizer que a lógica esta tendo, mas não esta mostrando quando não for encontrado um registro. Isso esta acontecendo em outro Código para retornar todos os usuários em uma busca.


Alguem poderia me ajudar???

=====================================
Acrescentando...

Testei true e false - mesma coisa...
quando encontra ele mostra Login confirmado
Ai eu peço para ver o Código fonte, e só tem

Login confirmado

Agora quando nao encontra registro, o Código fonte é o seguinte

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1"></HEAD>
<BODY></BODY></HTML>

:blink:

Edição feita por: carneiro, 14/02/2006, 20:54.

Descrição
Alexandre Magno Semmer
www.alexandresemmer.com
Programador Web

Programação
ASP, PHP, JavaScript, CSS, SQL, JAVA, C, Paschal, Ajax, XML
Usuário
Posted Image
Links
Ajax Online - FireBug (Firefox) - Documentação PHP - Documentação Prototype - Documentação jQuery - Script.Aculo.Us

#2 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 14/02/2006, 23:39

Pode ser que a exibição de erros esteja desabilitada no seu php.ini, mas um problema provável é o fato você chamar o mysql_fetch_array sem ter certeza de que a consulta encontrou algo. Quando ele não encontra, é pra dar erro mesmo. O mais correto seria:

$confirmacao = mysql_query("SELECT * FROM usuario WHERE DscEmail = '$login' AND DscSenha ='$senha'", $db); 
$contagem = mysql_num_rows($confirmacao) or die(mysql_error()); 

if($contagem == 1){
    $atributo = mysql_fetch_array($confirmacao)or die(mysql_error());
    echo 'Login confirmado';
}else{
   echo 'Erro Login'; 
}
Assim, você só recupera os dados quando tiver certeza de que eles existem.

#3 fly2k

fly2k

    Super Veterano

  • Usuários
  • 2262 posts
  • Sexo:Não informado

Posted 14/02/2006, 23:41

muito estranho.
Tente:

if($contagem === 1){
echo 'Login confirmado';
}else{
echo 'Erro Login';
}
Quer aprender PHP? -> www.manjaphp.com.br
Tutoriais, código colaborativo (pastebin), curso de PHP, artigos e etc.

#4 gonacts

gonacts

    "Agora eu tb tenho um Tux..." =D

  • Usuários
  • 1030 posts
  • Sexo:Não informado

Posted 15/02/2006, 11:55

cara, tenta colocar o or die na sua query:
$confirmacao = mysql_query("SELECT * FROM usuario WHERE DscEmail = '$login' AND DscSenha ='$senha'", $db)or die(mysql_error());
$contagem = mysql_num_rows($confirmacao);

if($contagem == 1){
   $atributo = mysql_fetch_array($confirmacao)or die(mysql_error());
   echo 'Login confirmado';
}else{
  echo 'Erro Login';
}

ve se vai dar algum erro!!
"Ninguém é tão inteligente que não possa aprender e ninguém é tão burro que não possa ensinar.."
"As dúvidas engrandecem nossa sabedoria, mas não basta somente tirá-las, temos que entendê-las"

#5 carneiro

carneiro

    programador web

  • Usuários
  • 155 posts
  • Sexo:Não informado
  • Localidade:cascavel - pr
  • Interesses:programação e design para web

Posted 15/02/2006, 19:57

Achei o erro...
estava assim

$contagem = mysql_num_rows($confirmacao) or die(mysql_error());

quando tirei o or die(mysql_error());, funcionou dai :)

$contagem = mysql_num_rows($confirmacao);


gonacts seu código esta sem o or die, fui ver agora que vim postar a solução ehehehehehe...

Valeu pessoal
Descrição
Alexandre Magno Semmer
www.alexandresemmer.com
Programador Web

Programação
ASP, PHP, JavaScript, CSS, SQL, JAVA, C, Paschal, Ajax, XML
Usuário
Posted Image
Links
Ajax Online - FireBug (Firefox) - Documentação PHP - Documentação Prototype - Documentação jQuery - Script.Aculo.Us

#6 LarPhozyHah

LarPhozyHah

    Super Veterano

  • Usuários
  • 14515 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 20/10/2017, 17:08

Viagra Receta Medica Levitra Avis Doctissimo buy viagra Kamagra Legal En France Cialis A La Venta
Propecia Cusco Cephalexin Dosage Cat Feline cost of levitra at cvs 360 Sildenafil Citrate 100mg For Sale Viagra Usarla
Photos Amoxicillin Reaction Amitriptyline Looking To Buy Isotretinoin tab internet pharmacy with free shipping viagra online pharmacy Cialis No Funciona Buy Nolvadex Tamoxifen Uk Dapoxetine Chlorhydrate




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq