Это небольшой фрагмент кода, с которым я работал.
<?php
$rank = 0;
$rank = 0;
$sql = mysql_query("SELECT m.memberID, username,email,target,type, ifnull(t.total,0) as total, ifnull(m.total,0) as totalp FROM `members` as m
left join (
select s.memberID, sum(amount) total from sponsors as s group by s.memberID
) t on t.memberid = m.memberid
left join (
select s.memberID, sum(amount) total from sponsors as s group by s.memberID
) p on p.memberid = m.memberid Where type= 'business'
ORDER BY t.total DESC, p.total DESC, username ASC");
while($row = mysql_fetch_object($sql))
{
echo "<tr>";
$rank = $rank + 1;
echo "<td><center>$rank</center></td>";
echo "<td>$row->username</td>";
echo "<td>$row->total</td>";
echo "<td>$row->target</td>";
echo "<td>$row->here i want percentage</td>";
echo "</tr>";
}
?>
То, что я хотел бы сделать, это отобразить процент от общего / целевого в последнем столбце моей таблицы. Не уверен, что лучший способ сделать это, и хотел бы услышать некоторые идеи для этого.
Я пытался сделать это просто как total / target в эхо, но думал, что это, вероятно, нужно оценивать раньше как переменную или что-то в этом роде? Что бы я ни пытался, все равно ничего не получалось …
Посмотрел на это, но не уверен, как реализовать это в моем сценарии — Процент отображения MSSQL, рассчитанный из двух столбцов
Попробуй это,
<?php
$rank = 0;
$rank = 0;
$sql = mysql_query("SELECT m.memberID, username,email,target,type, ifnull(t.total,0) as total, ifnull(m.total,0) as totalp, (ifnull(t.total,0)/target)*100 as present FROM `members` as m
left join (
select s.memberID, sum(amount) total from sponsors as s group by s.memberID
) t on t.memberid = m.memberid
left join (
select s.memberID, sum(amount) total from sponsors as s group by s.memberID
) p on p.memberid = m.memberid Where type= 'business'
ORDER BY t.total DESC, p.total DESC, username ASC");
while($row = mysql_fetch_object($sql))
{
echo "<tr>";
$rank = $rank + 1;
echo "<td><center>$rank</center></td>";
echo "<td>$row->username</td>";
echo "<td>$row->total</td>";
echo "<td>$row->target</td>";
echo "<td>$row->present</td>";
echo "</tr>";
}
?>
Вот логика
((приведение («A / B» в качестве числа с плавающей запятой) / «C») * 100.00) Поскольку «D%», все значения должны быть целыми числами, и когда вы делите их, они должны быть преобразованы в число с плавающей точкой, чтобы вычисления выполнялись правильно.
Надеюсь, это сработает для вас.