我想根据主要结果查询中的数学总和答案对结果进行排序,我的意思是:
我当前的代码看起来像这样:
$query = "SELECT * FROM foo WHERE foobar='{$fobo}' ORDER BY id DESC";
$result = mysql_query($query);
while($row = mysql_fetch_array($result))
{
$percent = round((100 * $row['wins'] / ($row['wins'] + $row['loses'])));
echo 'blah blah blah' . $percent;
}
如您所见,我目前按 id 排序:
$query = "SELECT * FROM foo WHERE foobar='{$fobo}' ORDER BY id DESC";
但我想按 $percent
答案排序,但那是在 while 循环内计算的。
我尝试创建一个查询并将其放在主要结果查询之前:
$p = "SELECT wins, loses FROM foo WHERE foobar='{$fobo}'";
$pr = mysql_query($p);
$pow = mysql_fetch_array($pr);
$percent = round((100 * $pow['wins'] / ($pow['wins'] + $pow['loses'])));
但那吐了出来
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean
我认为 % 计算可以在主查询中完成,而不是我认为可以执行的 php 求和,但我不知道该查询是什么。
最佳答案
无需在循环内计算 percentage
值,然后使用另一个循环进行排序,您可以只在一个查询中执行此操作:
$query = "SELECT foo.*,
ROUND((100 * wins / (wins + loses))) AS percentage
FROM foo
WHERE foobar='{$fobo}'
ORDER BY percentage ASC";
$result = mysql_query($query);
while($row = mysql_fetch_array($result))
{
echo 'blah blah blah' . $row['percentage'];
}
关于php - ORDER BY % 这是在原始 while 循环中计算的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12383574/