teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

2重投稿の為、削除しました

2016/08/30 09:21

投稿

RhymeLight
RhymeLight

スコア12

answer CHANGED
@@ -1,130 +1,1 @@
1
- ```PHP
2
- <html lang="ja">
3
- <head>
4
- <title></title>
5
- </head>
6
- <body>
7
-
8
- <?php
9
- // 接続設定(サーバ/データベース/ユーザ/パスワード)
10
- define("DBSV", "db_sv");
11
- define("DBNAME", "db_name");
12
- define("DBUSER", "hogehoge");
13
- define("DBPASS", "password");
14
-
15
- // 文字コード設定
16
- define("ENCDISP", "UTF-8"); //表示文字コード
17
- define("ENCDB", "UTF-8"); //データベース文字コード
18
-
19
- // 選択リストの値を取得
20
- $exprice = "price1";
21
- $exprice2 = "price2";
22
- //$val = $_POST["$exprice"];
23
- $val = "";
24
- $kekka = "";
25
-
26
- // データベースに接続
27
- $conn = conndb();
28
-
29
- if(isset($_POST['submit'])){
30
- // POSTで送信された通貨を取得
31
- $currency1 = $_POST["price1"]; # 変換元の通貨
32
- $currency2 = $_POST["price2"]; # 変換先の通貨
33
- //echo "<br />";
34
- //echo "変換元の通貨-> " . $currency1;
35
- //echo "<br />";
36
- //echo "変換先の通貨-> " . $currency2;
37
- //echo "<br />";
38
-
39
- // レートをデータベースから取得
40
- $result = mysql_query("SELECT $currency2 FROM exchange2 WHERE price = '$currency1'");
41
-
42
- $row = mysql_fetch_assoc($result);
43
- //print('<p>');
44
- //print('id='.$row["$currency2"]);
45
- // print(',name='.$row["$currency1"]);
46
- //print('</p>');
47
-
48
- // 入力された値とレートで計算して結果を求める
49
- $kekka = $_POST["yen"] * $row["$currency2"];
50
- }
51
-
52
- ?>
53
- <form method="POST" action="<?php echo $_SERVER["PHP_SELF"]?>">
54
- <table>
1
+ 2重投稿の為、削除しました
55
- <tr>
56
- <td><input type="text" name="yen" size="20" value="" />通貨を</td>
57
- <td><?php echo disp_list($conn, "exchange2", "price", "country", $val, $exprice); ?>から</td>
58
- <td><?php echo disp_list($conn, "exchange2", "price", "country", $val, $exprice2); ?>へ</td>
59
- <td><input type="submit" name='submit' value="変換"></td>
60
- </tr>
61
- </table>
62
- </form>
63
- <b>
64
-
65
- <?php
66
- // 結果を表示
67
- echo "$kekka";
68
- ?>
69
- </b>
70
-
71
- </body>
72
- </html>
73
-
74
- <?php
75
- // データベース接続の解除
76
- closedb($conn);
77
- ?>
78
- <?php
79
-
80
- //------------------------------
81
- // 関数
82
- //------------------------------
83
-
84
- // 選択リストを出力する関数
85
- // パラメータ:接続/テーブル名/リスト値/表示値/選択値/リスト名
86
- function disp_list($conn, $table, $value, $text, $selected_value = "", $m_name) {
87
- // DBから製品情報を取り出す
88
- $sql = "SELECT * FROM " . $table . " ASC" . $value;
89
- $res = mysql_query($sql, $conn) or die("データが取得できませんでした");
90
-
91
- // 取り出した製品情報をプルダウンリストに表示する
92
- echo "<select name=\"" . $m_name . "\">";
93
- while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
94
- echo "<option ";
95
- if ($selected_value == $row[$value]) {
96
- echo " selected ";
97
- }
98
- echo " value=\"".$row[$value]."\">";
99
- echo cnv_dispstr($row[$text])."</option>";
100
- }
101
- echo "</select>";
102
- }
103
-
104
- // DB接続
105
- function conndb() {
106
- $conn = mysql_connect(DBSV, DBUSER, DBPASS) or die("DBに接続できませんでした");
107
- mysql_select_db(DBNAME) or die("DBに接続できませんでした");
108
- return $conn;
109
- }
110
-
111
- // DB接続解除
112
- function closedb($conn) {
113
- mysql_close($conn);
114
- }
115
-
116
- // 表示用の文字コードに変換
117
- function cnv_dispstr($string) {
118
- //文字コードを変換
119
- $det_enc = mb_detect_encoding($string, ENCDB . ", " . ENCDISP);
120
- if ($det_enc and $det_enc != ENCDISP) {
121
- return mb_convert_encoding($string, ENCDISP, $det_enc);
122
- }
123
- else {
124
- return $string;
125
- }
126
- }
127
-
128
-
129
- ?>
130
- ```