Problemer med formel (php-mysql)
Hejsa.Jeg står og har et lidt dumt problem.
Jeg driver et browser spil, hvori folk kan oprette forskellige ruter.
Jeg har nu lavet en udvidelse hvor jeg vil beregne et "demand" på en rute.. Det har jeg gjort således:
function demand($from_city) {
$most_used = mysql_query("SELECT from_city, COUNT(id) AS most_used FROM routes GROUP BY from_city ORDER BY most_used DESC LIMIT 1");
$least_used = mysql_query("SELECT from_city, COUNT(id) AS least_used FROM routes GROUP BY from_city ORDER BY least_used ASC LIMIT 1");
$most_used_to = mysql_query("SELECT to_city, COUNT(id) AS most_used FROM routes GROUP BY to_city ORDER BY most_used DESC LIMIT 1");
$least_used_to = mysql_query("SELECT to_city, COUNT(id) AS least_used FROM routes GROUP BY to_city ORDER BY least_used ASC LIMIT 1");
$actual_q = mysql_query("SELECT from_city FROM routes WHERE from_city = '".$from_city."'");
$most_row = mysql_fetch_array($most_used);
$least_row = mysql_fetch_array($least_used);
$most_row_to = mysql_fetch_array($most_used_to);
$least_row_to = mysql_fetch_array($least_used_to);
$most_from_from = $most_row['most_used']; // Most used departure destination
$least_from_from = $least_row['least_used']; // Least used departure destination
$most_from_to = $most_row_to['most_used']; // Most used departure destinaton
$least_from_to = $least_row_to['least_used']; // Least used departure destination
if($most_from_from>$most_from_to) {
$most = $most_from_from;
}else{
$most = $most_from_to;
}
if($least_from_from<$least_from_to) {
$least = $least_from_from;
}else{
$least = $least_from_to;
}
$actual = mysql_num_rows($actual_q);// The actual amount
$calculation = 58+42*(1-($actual - $least) / ($most - $least));
$result = round($calculation);
if($result>99) {
$result = 99;
}
if($result<60) {
$result = 60;
}
return $result;
}
Formlen virker som den skal og retunerer et tal mellem 60 og 99.
Problemet er at der i routes tabellen ligger mere end 50.000 forskellige ruter, så når demand formlen bruges, så knækker serveren fuldstændig sammen.
Jeg er helt blank på hvordan jeg ellers kan gør det her :)
Nogen ideer ?
Mange tak
