将datavalue与循环结果相乘

时间:2016-11-28 21:35:35

标签: php sql

我现在有了这个代码,我有两个循环:一个显示我的所有ToDos,一个计算我在某个ToDo上工作的小时数。 我想要做的是将['pris'](成本pr小时)乘以循环中的小时['timer']。

echo "<div id='innhold'>";

$db = kobleTil();
$sql = "SELECT * FROM oppdrag";
$resultat = $db->query($sql);
while($nesteRad = $resultat->fetch_assoc()) {
echo "<hr />";

    echo "<table id='resultat'>";
    echo "<tr><th colspan='7'>" . $nesteRad['navn'] . "</th></tr>";
    echo "<tr><td><b>Type</b></td><td><b>Startdato</b></td><td><b>Sluttdato</b></td><td><b>Pris pr. time</b></td><td><b>Aktiv</b></td></tr>";
    echo "<tr>";
    echo "<td>" . $nesteRad['type'] . "</td>";
    echo "<td>" . $nesteRad['startDato'] . "</td>";
    echo "<td>" . $nesteRad['sluttDato'] . "</td>";
    echo "<td>" . $nesteRad['pris'] . "</td>";
    echo "<td>" . $nesteRad['aktiv'] . "</td>";
    echo '<td><a href="oppdrag.php?oppdrID=' . $nesteRad['oppdrID'] . '">Se på</a></td>';
    echo '<td><a href="litime.php?oppdrID=' . $nesteRad['oppdrID'] . '">Legg til timer</a></td>';
    echo '<td><a href="slett.php?oppdrID=' . $nesteRad['oppdrID'] .  '">Slett</a></td>';
    echo "</tr></table>";
    echo "<hr />";

    $prisx = $nesteRad['pris'];

    }

echo "<a href='lioppdrag.php'><h5>Legg inn nytt oppdrag</h5></a>";
echo "<br />";
echo "<h3>Statistikk - Oppgaver arbeidet mest med<br /></h3>";

$statistikk = "SELECT oppdrag.*, (SELECT SUM(timer) FROM timeregistrering  WHERE timeregistrering.oppdrID = oppdrag.oppdrID) AS Timer FROM oppdrag ORDER BY  Timer DESC";
$print = $db->query($statistikk);
while($rad = $print->fetch_assoc()) {

    $timer = $rad['Timer'] . '00px';
    echo "<b>Oppdrag: " . $rad['navn'] ." Antal timer: " . $rad['Timer'] . " </b><br/>";
    echo "<img src='firkant.png' id='firkant' width='"; echo $timer; echo "'></img><br/><br/>";

    $timerx = $rad['Timer'];

    }

echo "</div>";
} else { 
echo "<div id='innhold'>";
echo "<a href='index.php'>Logg inn for å se innholdet</a>";

echo "</div>";
}
?>

1 个答案:

答案 0 :(得分:0)

我会试着让你朝着正确的方向前进但没有确切的表格,我无法给你准确的答案。首先,在进入PHOP和循环之前,我会在SQL中执行此操作。根据set的not循环来考虑,因此将每个组的todo和sum(计时器)分组。然后你可以用sum(计时器)* pris做另一个列,称为Total。 Psuedocode就像

select ToDo.Name, sum(working.timer), sum(timer)*ToDo.Pris as Total 
from ToDo join working on todo.id = working.todo_id 
group by ToDo.Name

(以及限制日期工作的where子句可能除非你只想要一切)

编辑:对不起我不确定为什么在我第一次看到这个问题时代码没有出现,我只是在我回答之后才看到它但是我仍然认为这可能会有所帮助所以看看并让我知道< / p>