3

私は2つのテーブルを持っています

表1は

    idno         marks
     1             12
     1             13
     1             22 
     2             32 
     2             35
     2             11  and so on

表2は

    idno          marks
     1              16
     1              22 
     1              21 
     2              35 
     2              16
     2              22   and so on

ユーザーがidnoを入力して送信するためのフォームを提供しています

ユーザーがフォームに「1」を入力して送信すると、出力は次のようになります。

        Total Marks
            106 

つまり、表 1 の Idno 1 のすべてのマークの合計 + 表 2 の Idno 1 のすべてのマークの合計

(12+13+22)+(16+22+21) = 106

そして私は次のコードを使用しています

<form id="form" action="sum.php" method="post">
<td><p align="center"> IDNO : <input type="text" name="id" id="id" maxlength="10"></p></td>
<input type="submit" id="submit" class='btnExample' value="Click here to get your Result"
</form>

<?PHP
$user_name = "admin";
$password = "123456";
$database = "demo";
$server = "localhost";
$db_handle = mysql_connect($server, $user_name, $password);
$db_found = mysql_select_db($database, $db_handle);

if ($db_found) {
$id = mysql_real_escape_string($_POST['id']);
$add = "SELECT htno, SUM(tech) 
FROM(SELECT htno, SUM(tm) AS tech FROM jbit WHERE htno='$id'
UNION ALL  
SELECT htno, SUM(tm1) AS tech  FROM hmm WHERE htno='$id') AS tech4 "; 
$result3 = mysql_query($add);
echo "
<center><table id='mytable' cellspacing='0'  border=3 align=center>
<tr>
<TH scope='col'>Total Marks</TH>
</tr><center>";
while ($row1 = mysql_fetch_assoc($result3)){
echo "<tr>";
echo "<td align=center>" . $row1['tech4']. "</td>";
echo "</tr>";
}
mysql_close($db_handle);
else {
print "Database NOT Found ";
mysql_close($db_handle);
}

しかし、出力は空白です

私を助けてください

4

3 に答える 3

1

WHERE 句の後のユニオンの両方の部分でGROUP by htnoが欠落しているようです。または、共用体の SELECT 句からhtnoフィールドを削除することを検討してください。

 select sum(sm) from
   (select Sum(marks) sm from sums1 where idno=1
   union
   select Sum(marks) sm from sums2 where idno=1 ) ss

これをmysqlでテストしたところ、動作しました

于 2012-10-14T17:55:25.083 に答える
1
WHERE htno='$id) AS tech4 "; 
               ^----here is the problem  should be htno='$id'
于 2012-10-14T17:48:07.793 に答える
0
SELECT SUM(tech) AS tech4 FROM (
(SELECT SUM(tm) AS tech FROM jbit WHERE htno='$id')
UNION ALL
(SELECT SUM(tm) AS tech FROM hmm WHERE htno='$id')
) t1
于 2012-10-14T20:27:38.293 に答える