|
 |
 |
データベースの内容を計算
サンプルと機能
データベースの指定されたテーブルの内容を合計して出力します。
→ サンプル
| id | da | db | dc | dd |
|---|
| 1 | 4000 | 2000 | 3000 | 2000 | | 2 | 5000 | 2000 | 4000 | 3000 | | 3 | 6000 | 2000 | 5000 | 4000 | | 4 | 4000 | 2000 | 3000 | 2000 | | 5 | 5000 | 2000 | 6000 | 3000 | | 6 | 6000 | 2000 | 5000 | 1000 | | 計 | 30000 | 12000 | 26000 | 15000 |
サンプルでは、「id」のみを出力しないようにしています。
サンプルスクリプト
緑の文字が変更箇所で、赤い文字が対応するPHPです。
<!-- -->内または//以下はコメントです。削除しても影響ありません。
必要な箇所をコピー&貼り付けして編集してください。
→ データベースの内容を計算
<?php header("Content-Type:text/html;charset=SHIFT_JIS"); ?>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<?php
$srv = "localhost"; // サーバー名
$id = "xxxxx"; // ユーザーID
$passwd = "xxxxx"; // パスワード
$dbn = "sample"; // データベース名
$sql = "SELECT * FROM sample2"; // SQL文
$db = mysql_connect($srv,$id,$passwd);
mysql_select_db($dbn,$db);
$rs = mysql_query($sql,$db);
$num = mysql_num_fields($rs);
//--- テーブルのレイアウト --- 開始 ----------------------->
print("<TABLE border='0' bgcolor='#ffffff' cellspacing='1'><TR
bgcolor='#cccccc'>");
for($i=0; $i<$num; $i++) {
print("<TH>".mb_convert_encoding(mysql_field_name($rs,$i),"SJIS","EUC-JP")."</TH>");
}
while($row=mysql_fetch_array($rs)) {
print("<TR bgcolor='#e0e0e0'>");
for($j=0; $j<$num; $j++) {
print("<TD>".mb_convert_encoding($row[$j],"SJIS","EUC-JP")."</TD>");
$total[$j] += $row[$j];
}
print("</TR>");
}
print("<TR bgcolor='#ffe0e0'>");
for($j=0; $j<$num; $j++) {
if($j == 0) print("<TD>計</TD>");
else print("<TD>".mb_convert_encoding($total[$j],"SJIS","EUC-JP")."</TD>");
}
print("</TR>");
print("</TABLE>");
//--- 終了 --->
mysql_free_result($rs);
mysql_close($db);
?>
</BODY>
</HTML> |
解説・注意点など
サンプルに用いたSQLは以下のとおりです。
CREATE TABLE sample2 (
id int(10) NOT NULL,
da int(10) default NULL,
db int(10) default NULL,
dc int(10) default NULL,
dd int(10) default NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;
INSERT INTO sample2 VALUES (1,4000,2000,3000,2000);
INSERT INTO sample2 VALUES (2,5000,2000,4000,3000);
INSERT INTO sample2 VALUES (3,6000,2000,5000,4000);
INSERT INTO sample2 VALUES (4,4000,2000,3000,2000);
INSERT INTO sample2 VALUES (5,5000,2000,6000,3000);
INSERT INTO sample2 VALUES (6,6000,2000,5000,1000);
← PHP/データベースに戻る
|
 |
|