2016-11-28 3 views
0

Iveは現在、私のToDosをすべて表示するループと特定のToDoで働いた時間をカウントするループの2つのループを持っています。 私がしたいことは、[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>"; 
} 
?> 

答えて

0

私は正しい方向に私はあなたに正確な答えを与えることはできません正確なテーブルなしであなたを設定しようとするでしょう。最初にPHOPとループに入る前にSQLでこれを行います。セットのループではないと考えるので、グループごとにトゥードとサム(タイマー)をグループ化します。次に、合計(timer)* prisをTotalと呼ぶ別の列を実行することができます。コードは時に現れなかった理由を、私はよく分からない申し訳ありません:

編集(日数を制限するための句はあなただけのすべてを使用する場合に限り、おそらく働いたとa)の擬似コードは

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 

ようなものになるだろう私は最初に質問を見て、私は答えた後でしか見なかったが、まだこれが助けになるかもしれないと思うと思う。

+0

'select oppdrag.navn、sum(timeregistrering.timer)、sum(timer)* oppdrag.prisとして合計 oppdragからtimeregistreringに参加timeregistrering.timeID = timeregistrering.oppdrID opでグループpdrag.navn'#1055 - SELECTリストの式#3はGROUP BY句にはなく、GROUP BY句のカラムに機能的に依存しない非集約カラム 'prosjektphp.oppdrag.pris'を含みます。これはsql_mode = only_full_group_byと互換性がありません。 –

+0

oppdrag.prisを合計parenの中の3番目の式に入れることができます。それはoppdrag.navnと同じテーブルにあるので、groupd節、oppdrag.navn、oppdrag.prisのグループでも認識される可能性があります。しかし、私はかっこを移動するだけで、うまくいくはずです – billpennock

関連する問題