Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) mysql_result


hippy

Pergunta

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

  • 0
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.

Link para o comentário
Compartilhar em outros sites

  • 0

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;
  }
?>

Link para o comentário
Compartilhar em outros sites

  • 0
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.

Link para o comentário
Compartilhar em outros sites

  • 0
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?

Link para o comentário
Compartilhar em outros sites

  • 0

$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?

Link para o comentário
Compartilhar em outros sites

  • 0
$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: 0

Não estou entendendo, mesmo com IF para > 0 ele entra com o valor = 0.

Link para o comentário
Compartilhar em outros sites

  • 0

esse zero que esta retornando é uma string provavelmente

tenta 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 string

if ($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!

Link para o comentário
Compartilhar em outros sites

  • 0

aqui ele sempre vai ser verdadeiro porque sua execução da query sempre retorna alguma linha

se 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 por JuanHBiscaia
Link para o comentário
Compartilhar em outros sites

  • 0
aqui ele sempre vai ser verdadeiro porque sua execução da query sempre retorna alguma linha

se 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 provavelmente

tenta 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 string

if ($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???

Link para o comentário
Compartilhar em outros sites

  • 0
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.

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...