hippy Postado Setembro 1, 2008 Denunciar Share Postado Setembro 1, 2008 Bom dia,estou com uma consulta da query:$resultado = mysql_query("select count(*) from cotacao where datas = '$datas'")Bem,eu fiz um IF desta maneira:if (mysql_result($resultado,0) <> "0");o estranho é que SEMPRE entra no IF, sendo o resultado 0(zero) ou não.Alguém ajuda? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Norivan Oliveira Postado Setembro 1, 2008 Denunciar Share Postado Setembro 1, 2008 Não testei, mas imagino que o 0 retornando pela função myssql_result seja um inteiro, tente retira as "" Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 hippy Postado Setembro 1, 2008 Autor Denunciar Share Postado Setembro 1, 2008 Não testei, mas imagino que o 0 retornando pela função myssql_result seja um inteiro, tente retira as ""Negativo, fiz o teste com is_string e é string mesmo, mas mesmo eu convertendo para inteiro utilizando o (integer), ele SEMPRE entra no IF.é estranho mesmo eu fiz isso olha:if ($saida) {bla bla bla}e ele entra no IF, logo depois eu fiz:if (!$saida){bla bla bla}ele também entra no IF.....muuuuito estranho. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JuanHBiscaia Postado Setembro 1, 2008 Denunciar Share Postado Setembro 1, 2008 pelo que eu entendi você quer pegar uma tabela do banco e verificar a quantidade de linhas encontradas dentro dela, usa a função count() para contar e verifica se o resultado é igual a 0, se for executa uma condição, se não for, executa outra... certo?se for isso, tenta fazer o seguinte no lugar do que você esta fazendo ai:<? $sql = "SELECT * FROM cotacao WHERE datas = '$datas'"; $result = mysql_query($sql); $linhas = mysql_num_rows(result); if ($linhas <= 0) { echo "A quantidade de linhas encontradas é 0. Essa é a quantidade: " . $linhas; } else if ($linhas > 0) { echo "A quantidade de linhas encontradas é maior do que 0. Essa é a quantidade: " . $linhas; } ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 hippy Postado Setembro 1, 2008 Autor Denunciar Share Postado Setembro 1, 2008 pelo que eu entendi você quer pegar uma tabela do banco e verificar a quantidade de linhas encontradas dentro dela, usa a função count() para contar e verifica se o resultado é igual a 0, se for executa uma condição, se não for, executa outra... certo?se for isso, tenta fazer o seguinte no lugar do que você esta fazendo ai:<? $sql = "SELECT * FROM cotacao WHERE datas = '$datas'"; $result = mysql_query($sql); $linhas = mysql_num_rows(result); if ($linhas <= 0) { echo "A quantidade de linhas encontradas é 0. Essa é a quantidade: " . $linhas; } else if ($linhas > 0) { echo "A quantidade de linhas encontradas é maior do que 0. Essa é a quantidade: " . $linhas; } ?>Aee Juan, é isso mesmo, mas como a consulta utilizando o seu método me retorna uns 15000 pontos eu queria economizar tempo utilizando o count(*).Simplesmente não está fazendo sentido um IF ser SEMPRE verdadeiro. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JuanHBiscaia Postado Setembro 1, 2008 Denunciar Share Postado Setembro 1, 2008 enfim.... isso resolveu seu problema ? ou você ainda esta precisando de um método mais rápido ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 hippy Postado Setembro 1, 2008 Autor Denunciar Share Postado Setembro 1, 2008 enfim.... isso resolveu seu problema ? ou você ainda esta precisando de um método mais rápido ?Cara isso até resolve, mas demora muito mais que a outra consulta.Eu queria preservar a quantidade de acesso ao banco, pois este é grande mesmo!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 hippy Postado Setembro 1, 2008 Autor Denunciar Share Postado Setembro 1, 2008 enfim.... isso resolveu seu problema ? ou você ainda esta precisando de um método mais rápido ?Bem, olha só o que eu fiz:$comando = sprintf ("select distinct datas from cotacao where datas = '$datas'");$resultado = mysql_query("$comando");if (!$resultado) { die('Erro na consulta:' . mysql_error());}$saida = mysql_num_rows($resultado);if ($saida > 0);{ echo("<BR>-$saida-0-"); mysql_close();}esse IF ($saida) é SEMPRE verdadeiro, era a mesma coisa que acontecia com o mysql_result()...Não adiantou o num_rows não.E agora? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Norivan Oliveira Postado Setembro 1, 2008 Denunciar Share Postado Setembro 1, 2008 $comando = sprintf ("select distinct datas from cotacao where datas = '$datas'");$resultado = mysql_query("$comando");if (!$resultado) {die('Erro na consulta:' . mysql_error());}$saida = mysql_num_rows($resultado);echo "imprimiu: ".$saida;if ($saida > 0);{echo("<BR>-$saida-0-");mysql_close();me diz o que aparece na frente de imprimiu? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 hippy Postado Setembro 1, 2008 Autor Denunciar Share Postado Setembro 1, 2008 $comando = sprintf ("select distinct datas from cotacao where datas = '$datas'");$resultado = mysql_query("$comando");if (!$resultado) {die('Erro na consulta:' . mysql_error());}$saida = mysql_num_rows($resultado);echo "imprimiu: ".$saida;if ($saida > 0);{echo("<BR>-$saida-0-");mysql_close();me diz o que aparece na frente de imprimiu?RESULTADO:imprimiu: 0Não estou entendendo, mesmo com IF para > 0 ele entra com o valor = 0. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Norivan Oliveira Postado Setembro 1, 2008 Denunciar Share Postado Setembro 1, 2008 esse zero que esta retornando é uma string provavelmentetenta isso$comando = sprintf ("select distinct datas from cotacao where datas = '$datas'");$resultado = mysql_query("$comando");if (!$resultado) {die('Erro na consulta:' . mysql_error());}$saida = mysql_num_rows($resultado);if(is_string($saida){$saida = str_len($saida); // conta os caracteres d a stringif ($saida != 1 and $saida != 0);{echo "$saida";}} else { echo "não é string";(int)$saida;if ($saida != 0);{echo "$saida";}}mysql_close();obs: não estou testando pois estou na máquina do meu chefe sem php, sem nada! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JuanHBiscaia Postado Setembro 1, 2008 Denunciar Share Postado Setembro 1, 2008 (editado) aqui ele sempre vai ser verdadeiro porque sua execução da query sempre retorna alguma linhase você colocar um echo $saida; antes do if vai ver que ele sempre retorna algum valor superior a 0 (sempre vai ser $saida > 0)tenta fazer assim:<? $comando = sprintf ("select distinct datas from cotacao where datas = '$datas'"); $resultado = mysql_query($comando) or die('Erro na consulta:' . mysql_error());; // criando um indice em um array para cada linha encontrada $linhas = mysql_fetch_array($resultado); $count = count($linhas); if ($count <= 0); { echo "A quantidade de linhas encontradas é 0"; } else if ($count > 0) { echo "A quantidade de linhas encontradas é: " . $count; } ?>--------------------------------------o que o Norivan falou também é válido, pode ser que tenha uma performance melhor do que o meu... testa os dois lá e passa um feedback pra nós... Editado Setembro 1, 2008 por JuanHBiscaia Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 hippy Postado Setembro 1, 2008 Autor Denunciar Share Postado Setembro 1, 2008 aqui ele sempre vai ser verdadeiro porque sua execução da query sempre retorna alguma linhase você colocar um echo $saida; antes do if vai ver que ele sempre retorna algum valor superior a 0 (sempre vai ser $saida > 0)tenta fazer assim:<? $comando = sprintf ("select distinct datas from cotacao where datas = '$datas'"); $resultado = mysql_query($comando) or die('Erro na consulta:' . mysql_error());; // criando um indice em um array para cada linha encontrada $linhas = mysql_fetch_array($resultado); $count = count($linhas); if ($count <= 0); { echo "A quantidade de linhas encontradas é 0"; } else if ($count > 0) { echo "A quantidade de linhas encontradas é: " . $count; } ?>--------------------------------------o que o Norivan falou também é válido, pode ser que tenha uma performance melhor do que o meu... testa os dois lá e passa um feedback pra nós...Negativo, mesmo eu modificando a query para retornar valores diferentes de 0 ele entra no IF.esse zero que esta retornando é uma string provavelmentetenta isso$comando = sprintf ("select distinct datas from cotacao where datas = '$datas'");$resultado = mysql_query("$comando");if (!$resultado) {die('Erro na consulta:' . mysql_error());}$saida = mysql_num_rows($resultado);if(is_string($saida){$saida = str_len($saida); // conta os caracteres d a stringif ($saida != 1 and $saida != 0);{echo "$saida";}} else { echo "não é string";(int)$saida;if ($saida != 0);{echo "$saida";}}mysql_close();obs: não estou testando pois estou na máquina do meu chefe sem php, sem nada!Bem, tive de dar uma acertada no codigo para melhor visualizar o resultado, e ficou assim:if(is_string($saida)){ $saida = strlen($saida); // conta os caracteres d a string if ($saida != 1 and $saida != 0); { echo "$saida"; } } else { echo "não é string---"; (int)$saida; if ($saida != 0); { echo "*$saida*"; } }eis o resultado:não é string---*0*continua na mesma, ou seja, $saida é zero e mesmo assim entra no if ($saida != 0), estranho não??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 hippy Postado Setembro 1, 2008 Autor Denunciar Share Postado Setembro 1, 2008 Bom dia,estou com uma consulta da query:$resultado = mysql_query("select count(*) from cotacao where datas = '$datas'")Bem,eu fiz um IF desta maneira:if (mysql_result($resultado,0) <> "0");o estranho é que SEMPRE entra no IF, sendo o resultado 0(zero) ou não.Alguém ajuda?Senhores,muito obrigado pela ajuda, mas achei o erro, era muito banal e infantil, vejam só:if ($saida != 0);{echo "*$saida*";}o if() vem seguido de ";", o que finaliza a condição e executa o seguinte independente do if...:-)resolvido.Mais uma vez obrigado a todos. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Norivan Oliveira Postado Setembro 1, 2008 Denunciar Share Postado Setembro 1, 2008 rsrs a disposição... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JuanHBiscaia Postado Setembro 2, 2008 Denunciar Share Postado Setembro 2, 2008 poouts tava embaixo do nosso nariz... rsrs.... falou Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
hippy
Bom dia,
estou com uma consulta da query:
$resultado = mysql_query("select count(*) from cotacao where datas = '$datas'")
Bem,
eu fiz um IF desta maneira:
if (mysql_result($resultado,0) <> "0");
o estranho é que SEMPRE entra no IF, sendo o resultado 0(zero) ou não.
Alguém ajuda?
Link para o comentário
Compartilhar em outros sites
15 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.