Ir para conteúdo

POWERED BY:

Arquivado

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

Leo m

[Resolvido] Como ocultar o erro Warning: Division by zero in

Recommended Posts

Olá, boa noite.

 

Achei um script interessante de avaliação por estrelas. Ele funciona perfeitamente, mas, ao rodar o script sem voto nenhum, ele retorna erro: Warning: Division by zero in.

 

Na tabela tem: id, votos, pontos

 

id = auto_increment

votos = total de pessoas que votou

pontos = total de pontos

 

Ele funciona perfeitamente, mas, se na tabela for votos = 0 e pontos = 0, ele retorna erro: Warning: Division by zero in.

 

Como ocultar este erro na pagina para ninguém ver?

 

Segue o código do php e tabela:

 

<?
mysql_connect('servidor','usuario','senha');
mysql_select_db('banco_de_dados');
$id = $_GET['post'];
$SQL = "SELECT votos, pontos FROM registro WHERE id = $id";
$RS = mysql_query($SQL);
$RF = mysql_fetch_array($RS);

// Aqui está o erro:
$r = number_format($RF['pontos'] / $RF['votos'],2,'.','.');
?>

Aqui aparecerão as estrelas:
<form style="display:none" title="Average Rating: <?=$r?>" class="rating" action="rate.php">
    <input type="hidden" name="id" value="<?=$id?>">
    <input type="hidden" name="valor" value="1" />
    <select id="r1">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
    </select>
</form>

Grato pela atenção, ah, e prometo agradecer a cada resposta! :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites


//Você pode usar o sinal de arroba:

$r = @number_format($RF['pontos'] / $RF['votos'],2,'.','.');

//Ou fazer um if

$r = "0.00";

if ($RF['votos'] != 0)

$r = number_format($RF['pontos'] / $RF['votos'],2,'.','.');

Compartilhar este post


Link para o post
Compartilhar em outros sites

//Você pode usar o sinal de arroba:
//...

Divisão por 0 não é um erro que se deve esconder, ele deve ser tratado. O uso da condicional é forma mais correta para resolver esse problema

 

//Ou fazer um if
$r = "0.00";
if ($RF['votos'] != 0)
    $r = number_format($RF['pontos'] / $RF['votos'],2,'.','.');

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.