Rounding a variable

I am using a query to calculate the average of some numbers in a table.

the problem is that when i use this: <? echo $row->average; ?>

I get numbers with decimals. Is there some way I can round the <? echo $row->average; ?> to the nearest whole number?

I also need to grab the number of rows used to calculate the average and echo it like <? echo $row->average; ?> - <? echo $row->total; ?>

IE: if Mike's Restaurant had 10 records, <? echo $row->total; ?> would say 10.
<?
$query = "SELECT a.venuename, a.venueid, b.stars, b.reviewtext, AVG( stars ) AS average
FROM venue a, venuereview b
WHERE a.venueid = b.venueid
AND b.switch = '1'
GROUP BY b.venueid
ORDER BY average DESC";
 
$result = mysql_query($query) or die(mysql_error());
 
while ($row = mysql_fetch_object($result))
{
   ?>
   
       <p> <strong><? echo $row->venuename; ?></strong> - <img src = "<? echo $row->average; ?>"/></p>
 
  
<?php
}
?>

Open in new window

lvollmerAsked:
Who is Participating?
 
hieloConnect With a Mentor Commented:
If you do not want any decimals then use:
<? echo round( $row->average,0); ?>
0
 
hieloCommented:
If you want two decimal places use:
: <? echo round( $row->average,2); ?>
0
 
lvollmerAuthor Commented:
great thats what I need. any idea how I would display the number of records?
0
Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

 
hieloCommented:
>>any idea how I would display the number of records?
You should not be asking more than 1 question per post. That's in the user agreement. I'll assume you didn't know that and let it slide this time.

To answer your question, you need to do so right after your query:
...
$result = mysql_query($query) or die(mysql_error());
$totalRecords = mysql_num_rows( $result);
...
0
 
lvollmerAuthor Commented:
i did not know that, sorry.
0
 
lvollmerAuthor Commented:
I will create a  new question. that solution did not work. keep an eye out for it if you want to help
0
 
hieloCommented:
Ahh. I see you are using AVG( stars ) AS average

Try adding count(*) as totalRows to your query so that you get an extra field named totalRows. What I gave you:
$totalRecords = mysql_num_rows( $result);

will give you the total number of rows returned for the current query, but that is NOT what you need.
0
 
lvollmerAuthor Commented:
I actually have a field that just contains teh number 1 as a default, so I am using the SUM function for that - thanks for the help
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.