http://miraiplatform.com/service/ideabank.phpではPHP×MySQLの組み合わせでシステムを作っています。
実際にはどんな様なコードを書いたのか、サラッとまとめてみます。
database.phpはMySQLの接続設定が書いてあるファイルになります。実際にはどんな様なコードを書いたのか、サラッとまとめてみます。
MySQLに接続して、最新のレコード1件を取ってきます。
ちなみに非推奨メソッドとか使っていて、将来的にPHP7では動かないコードなので注意が必要です。
- <?php
- include_once 'database.php';
- $api_url = 'http://butaman.ymk-spark.or.jp/soft/testtech/randomsearch/WebApi.aspx?results=2';
- $link = mysql_connect("$host:$port", $user, $password);
- mysql_set_charset('utf8', $link);
- $db_selected = mysql_select_db($db, $link);
- $now_date = date('Y-m-d H:i:00');
- $event_date = date('Y-m-d H:i:00');
- $keyword1 = "";
- $keyword2 = "";
- $query = "SELECT keyword1, keyword2, event_date FROM keyword ORDER BY id DESC LIMIT 1";
- $result = mysql_query($query);
- while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
- $keyword1 = $line["keyword1"];
- $keyword2 = $line["keyword2"];
- $event_date = $line["event_date"];
- }
- mysql_free_result($result);
- ?>
- <?php echo "#" . $keyword1 . " × #" . $keyword2; ?>
レンダリングが遅くなると嫌なので、htmlを出力したあとにこの処理を持ってきています。
PHPの場合、HttpClientとか考えずにsimplexml_load_fileでURLからXMLのレスポンスを取得できます。
なんとなく連想配列にしたかったので、json_encode、json_decodeとかしています。
- <?php
- if (strtotime($now_date) > strtotime($event_date)) {
- $response = simplexml_load_file($api_url);
- $json = json_encode($response);
- $array = json_decode($json, TRUE);
- $sql = sprintf("INSERT INTO keyword (event_date, keyword1, keyword2, create_date) VALUES ('%s', '%s', '%s', NOW())", mysql_real_escape_string($now_date), mysql_real_escape_string($array["Result"][0]), mysql_real_escape_string($array["Result"][1]));
- $result = mysql_query($sql);
- }
- mysql_close($link);
- ?>