2016-07-24 5 views
2

に異なるクエリを持つ2つの異なる行を追加する方法を、私はデータ Total Points is the sum of two pointsそれでは、例を見てみましょうPHP

今私は、同じ名前を持つ行を合併しているし、今私は何をする必要があるかを計算さを持つテーブルを持っています2つの合計点の合計(合計)を計算し、次の行に表示します。ここでは、この Total of 'total points' のように私のコード

<table> 
<tr align="center"> 
<td>Name</td> 
<td>Point1</td> 
<td>Point2</td> 
<td>Total Points</td> 
</tr> 
<?php 
$select_name = mysql_query("SELECT * FROM test"); 
while($row = mysql_fetch_array($select_name)) 
{ 
?> 
<tr align="center"> 
<td><?php echo $row['name']; ?></td> 
<td><?php echo $row['point1']; ?></td> 
<td><?php echo $row['point2']; ?></td> 
<td><?php echo $row['point1']+$row['point2']; ?></td> 
</tr> 
<?php } ?> 
<tr align="center"> 
<td>Name</td> 
<td>Point1</td> 
<td>Point2</td> 
<td>Total Points</td> 
</tr> 
<?php 
$select_name = mysql_query("SELECT DISTINCT name FROM test"); 
while($row = mysql_fetch_array($select_name)) 
{ 
$query_table1 = mysql_query("SELECT sum(point1) as sum1,sum(point2) as sum2, sum(point1)+sum(point2) as total FROM test WHERE name='".$row['name']."'"); 
?> 
<tr align="center"> 
<td><?php echo $row['name']; ?></td> 
<td><?php echo mysql_result($query_table1, 0, "sum1"); ?></td> 
<td><?php echo mysql_result($query_table1, 0, "sum2"); ?></td> 
<td><?php echo mysql_result($query_table1, 0, "total"); ?></td> 
</tr> 
<?php } ?> 
<tr align="center"> 
<td>Total</td> 
<td></td> 
<td></td> 
<td>???</td> 
</tr> 

答えて

0

は常にあなたのHTMLからPHPのロジックを分離しています。これにより、より強力で柔軟性のあるコードを書くことができ、デバッグも簡単になります。

配列を行としてビルドするまでは、PHPでクエリと計算を完全に行います。あなたはすでに、すべてのデータを持っているので、あなたも、第二のクエリを必要としない

$tbl_1 = [ 
    ['abc',20,21,41], ['abc',25,14,39], 
    ['def',22,27,49], ['def',23,18,41] 
]; 

:その後、あなたのような何かを持っている必要があります。ちょうどあなたが必要な統計情報を取得するためにPHPでそれを操作し、第二の配列に入れ:

$tbl_2 = [ 
    ['abc',45,35,80], ['def',45,45,90] 
]; 

が壮大-合計を見つけるために、あなたは可能性のいずれかの配列の3番目の列をループ。

すべてのロジックが完了したら、HTMLに移動して結果を表示する必要があります。