Ir para conteúdo

Arquivado

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

terra

Division by zero in

Recommended Posts

olá,

 

esta ocorrendo esse erro Division by zero in line 180

 

 

 

$max =$row['gostei'];
$now =$row['naogostei'];
$primeiro = $max + $now; // recebe a quantidade de votos NEGATIVOS
if($now > $max)
{
$var_delivery[$i]['gostei'] = number_format(abs($max * 100/$primeiro));
}
else // recebe a quantidade de votos POSITIVOS
{
$var_delivery[$i]['gostei'] = number_format(abs($max*100/$primeiro)); //linha 180
}
$total = $max + $now;$total = $max + $now;

 

Agradeço qualquer ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso ocorre devido uma de suas variáveis estar sem valor, ou com valor null.

 

Nesta linha você está somando valores negativos e positivos:

 

 

 

$primeiro = $max + $now; // recebe a quantidade de votos NEGATIVOS

Defina o valor 1 para ambas as variáveis..

 

$max = isset($row['gostei'] and $row['gostei'] != '') ? $row['gostei'] : 1;
$now = isset($row['naogostei'] and $row['naogostei'] != '') ? $row['naogostei'] : 1;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

obrigado pela resposta.

 

Esta dando esse erro

 

 

 

PHP Parse error: syntax error, unexpected T_LOGICAL_AND, expecting ',' or ')' on line 175

$max = isset($row['gostei'] and $row['gostei'] != '') ? $row['gostei'] : 1; //line 175

 

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

faltou abrir o parêntese..

$max = ( isset( $row['gostei'] ) and $row['gostei'] != '' ) ? $row['gostei'] : 1;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alaerte, Hinom.

 

 

Obrigadoooooo!

 

 

 

terra



olá,

 

então, pintou esse erro

 

 

 

Division by zero in on line 504
$max = (isset($row['gostei'] )and $row['gostei'] != '') ? $row['gostei'] : 1;
$now = (isset($row['naogostei']) and $row['naogostei'] != '') ? $row['naogostei'] : 1;
$var_class[$i]['naogostei']=number_format($max / $now * 100); //erro nessa linha 504

 

 

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

deram o peixe ao invés de ensiná-lo a pescar.

 

 

quer aprender a pescar ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá,

 

sim, na verdade funciona ou seja mostra para usuario o percentual normal, mas esta criando arquivo error_log com erro Division by zero.

 

a linha do erro é essa:

 

 

$var_class[$i]['naogostei']=number_format($max / $now * 100); //erro nessa linha 504

 

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro "Division by zero" é um aviso de erro comum em praticamente todas as linguagens de programação.

 

A mensagem indica que erro foi causado por tentar efetuar uma operação de divisão com número ZERO.

Nenhum número é divisível por ZERO e, o ZERO não é divisível por nenhum número.

 

Portanto, antes de efetuar a divisão, verifique se os operadores são maior que ZERO.

 

if( $max > 0 and $now > 0 ){ 
    $var_class[$i]['naogostei']=number_format($max / $now * 100); //erro nessa linha 504
}else{
    $var_class[$i]['naogostei']=1; // aqui vc define um valor padrão.. coloquei 1 apenas para exemplo.
}

Para esses casos de condicionais simples recomendo usar a sintaxe alternativa

$var_class[$i]['naogostei'] = ( $max > 0 and $now > 0 ) ? number_format($max / $now * 100) : 1;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu pessoal.

 

 

Obrigado!

 

Acho que não vou iniciar outro topico(correto?).

 

Então, tenho o select abaixo que não esta funcionando.

 

 

 

$ps=mysql_query("select modelo, COUNT(id) from tabela where 1=1 and sub_cat_id='$subcat_id' GROUP BY modelo") or die('Query Error!');
//////////////verify myself list
$var_ps=mysql_num_rows($ps);

 

o que quero fazer

 

Tenho, por exemplo, a sub cat CARRO e o campo modelo (que não é categoria) eu contar quantos modelo de cada tem na subcat CARRO.

 

 

Valeu

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.