2013-11-26 40 views
0

我試圖輸出兩個表項與flot/jquery圖表上的日期的運行總數。mysql總和輸出在flot圖表

到目前爲止,代碼工作正常,可以在給定的日期輸出兩個值的折線圖,但我試圖顯示同一圖上每列的運行總數。 不知道是否可以使用單一的mysql查詢使用SUM(值)來實現這個?? - 只是不能得到它的工作。

<?php 

$query=("SELECT hours, credits, entryDate FROM entry WHERE uid='1'"); 

$result = mysql_query($query);   

while($row = mysql_fetch_assoc($result)) 
{ 
    $credits[] = array (strtotime ($row['entryDate'])*1000,($row['credits'])); 
    $hours[] = array (strtotime ($row['entryDate'])*1000,($row['hours'])); 
} ?> 

</script> 
var credits = <?php echo json_encode($credits);?> 
var hours = <?php echo json_encode($hours);?> 
+0

你是什麼意思的「總爲電子商務做ach專欄'?如果你使用SUM,你將得到一個結果(總和),並且很難有任何圖表。 – Krzysztof

+0

_Running_總爲每列,不知道這是否可以幫助,但是這是我想要做的事 - 信用小時日期 C1 H1 D1 C2 H2 D2 給兩個圖: GRAPH 1 [X1 = C1 Y1 = d1] [x2 = c1 + c2 y2 = d2] GRAPH 2 [x1 = h1 y1 = d1] [x2 = h1 + h2 y2 = d2] – Zeb99

回答

2

,最簡單的是做這將是剛在PHP運行總和,演出了對於每一日期,以及: -

<?php 

$query=("SELECT hours, credits, entryDate FROM entry WHERE uid='1' ORDER BY entryDate"); 

$result = mysql_query($query);   

while($row = mysql_fetch_assoc($result)) 
{ 
    $runningtotalcredits += $row['credits']; 
    $runningtotalhours += $row['hours']; 
    $credits[] = array (strtotime ($row['entryDate'])*1000,$row['credits']); 
    $creditssofar[] = array (strtotime ($row['entryDate'])*1000,$runningtotalcredits); 
    $hours[] = array (strtotime ($row['entryDate'])*1000,$row['hours']); 
    $hourssofar[] = array (strtotime ($row['entryDate'])*1000,$runningtotalhours); 
} ?> 

</script> 
var credits = <?php echo json_encode($credits);?> 
var hours = <?php echo json_encode($hours);?> 
var creditssofar = <?php echo json_encode($creditssofar);?> 
var hourssofar = <?php echo json_encode($hourssofar);?> 

它也應該能夠做到這一點的SQL使用相關子查詢,但效率可能不會很大: -

<?php 

$query=("SELECT hours, 
       credits, 
       entryDate, 
       (SELECT SUM(hours) AS hourssofar FROM entry b WHERE uid='1' AND b.entryDate <= a.entryDate), 
       (SELECT SUM(credits) AS creditssofar FROM entry c WHERE uid='1' AND c.entryDate <= a.entryDate) 
     FROM entry a 
     WHERE uid='1' 
     ORDER BY entryDate"); 

$result = mysql_query($query);   

while($row = mysql_fetch_assoc($result)) 
{ 
    $credits[] = array (strtotime ($row['entryDate'])*1000,$row['credits']); 
    $creditssofar[] = array (strtotime ($row['entryDate'])*1000,$row['creditssofar']); 
    $hours[] = array (strtotime ($row['entryDate'])*1000,$row['hours']); 
    $hourssofar[] = array (strtotime ($row['entryDate'])*1000,$row['hourssofar']); 
} ?> 

</script> 
var credits = <?php echo json_encode($credits);?> 
var hours = <?php echo json_encode($hours);?> 
var creditssofar = <?php echo json_encode($creditssofar);?> 
var hourssofar = <?php echo json_encode($hourssofar);?> 

(沒有測試)

+0

謝謝!完美的作品。 – Zeb99