techker Posted September 2, 2010 Share Posted September 2, 2010 hey guys i'm trying out this ajax rating script and i get this division by zero: Warning: Division by zero in /home/open2sha/public_html/Rate/index.php on line 37 <?php // very quick & dirty code $sql = mysql_query("SELECT * FROM tut_starRating"); $rows = mysql_num_rows($sql); if ($rows == 0) { echo "no rows found"; } else { while($row = mysql_fetch_array($sql)) { $tmp_rating = $row['rating'] / $row['votes']; $rating = round(($tmp_rating*2), 0)/2; // round up or down to nearest half print("<li><div class='rating' id='rating_".$row['articleId']."'>".$rating."</div><div id='starRatingFeedback_".$row['articleId']."'></div></li>"); } } ?> </ol> Quote Link to comment https://forums.phpfreaks.com/topic/212352-division-by-zero/ Share on other sites More sharing options...
JasonLewis Posted September 2, 2010 Share Posted September 2, 2010 And line 37 is this line? $tmp_rating = $row['rating'] / $row['votes']; Pretty poor validation here, you'd probably want to make sure that both numbers are greater then 0 before performing any division. if($row['rating'] > 0 && $row['votes'] > 0){ Quote Link to comment https://forums.phpfreaks.com/topic/212352-division-by-zero/#findComment-1106515 Share on other sites More sharing options...
sasa Posted September 2, 2010 Share Posted September 2, 2010 change $tmp_rating = $row['rating'] / $row['votes']; to$tmp_rating = $row['votes'] ? $row['rating'] / $row['votes'] : 0;[/code] Quote Link to comment https://forums.phpfreaks.com/topic/212352-division-by-zero/#findComment-1106517 Share on other sites More sharing options...
techker Posted September 2, 2010 Author Share Posted September 2, 2010 nice .i needed to have numbers in DB or that error would happend.i will change it .thx for the help Quote Link to comment https://forums.phpfreaks.com/topic/212352-division-by-zero/#findComment-1106602 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.