View Full Version : sql Mathematical problem to php

08-10-2007, 08:02 PM
ok this is just me thinking and the attributes arent those of what i have but just for clarification on how i would do it
ok theres 3 ranks all 3 ranks give an average score this average score is then ordered by lowest first giving an overall rank (avg rounded to nearest 10), like :

5*2*3 / 3 = 10 = 1
4*5*2 / 3 = 11 = 2

I can get this to diplay as a table but all i want is the overall rank to be displayed and also is it possible that two averages might be the same when each rank cant be the same if so would they be classed as the same overall rank?.

Hope this is explained well lol im horrible at explaining things

08-10-2007, 09:56 PM
First of all the average is the sum of the values divided by the number of values, not the multiplication as you have done.
5+2+3/3 = 3.3

Second, you mention sql in the title of your post but you don't mention it anywhere else, should you have?
I would imagine it is possible to get two averages the same, and yes you would class them as the same overall rank.

Any chance of some code, it often helps an explanation!

08-10-2007, 10:21 PM
i havent started to code it yet, the sql part i can do its just putting it together to form the php , but what i was wondering was how to make the sql so that 2 overall ranks arent the same like say two people had an average of 10 how would i get to display as this =
player 1 avg = 10 rank 1
player 2 avg = 10 rank 2
i think im just confusing myself further lol but i hope you understand.

08-10-2007, 10:24 PM
Can you post the sql you have, then I can have something to go on?

08-10-2007, 10:45 PM
SELECT `CARank`+`SARank`+`DARank`/3 = `Orank`FROM `MainT` Order by `Orank` Desc
it displays =
`CARank` + `SARank` + `DARank` / 3 = `Orank`
But its not showing just one overall rank and if another user has the same i want them to both have seperate ranks.

08-10-2007, 10:52 PM
Sorry, but I think I need to see the table definition to answer that.

08-10-2007, 11:01 PM
ok its no problem ill wait till i have something coded in php thanks for the help though i appreciate it :) i just think i need to understand it more lol

08-10-2007, 11:07 PM
SELECT (`CARank` + `SARank` + `DARank`) / 3 AS `Orank`, `username` FROM `MainT` ORDER BY `Orank` DESC
Will give you the average for the row, and if you use the result number as the rank they will all have separate ranks. ie.

$result = mysql_query('SELECT (`CARank` + `SARank` + `DARank`) / 3 AS `Orank`, `username` FROM `MainT` ORDER BY `Orank` DESC');
$count = 1;
while($row = mysql_fetch_assoc($result))
print $count . ' - ' . $row['username'] . '<br />';

08-10-2007, 11:19 PM
Thank you thats excactly what i was looking for all i have to do is add 2 more fields.
see i have three users all with the same stats (just for testing) but they do all come out as different ranks thanks. :)

08-11-2007, 12:10 AM
Ah I understand now, sorry I think I was looking for something more complicated!

08-11-2007, 12:40 AM
lol sorry , i think i thought there was something more complicated about it as well lol But thanks :)