2012年8月31日 星期五

『ファンタシースターオンライン2』 - 20120831

適逢早前更新,加上現在攻略放緩,所以抽少少時間寫點遊玩感想。


主線緩慢開通中,成功一睹雙子。兩人中妹妹比較討喜,姐姐好感度一般。

2012年8月20日 星期一

【文宣】香港原創新卡牌遊戲 Eudemons War 訪問

EW將會於CW34的E9檔位再次發售,為免向隅欲購從速! 原文早前已刊登於動漫無雙,為廣宣傳轉載於此。


香港卡牌玩家者眾,引入本地的卡牌遊戲種類題材甚豐。除了外國的卡牌遊戲外,亦不乏本地原創。其中新推出的Eudemons War(簡稱EW,下同)已定於本年度動漫節及CW34發售。作為新誕生的卡牌作品,究竟有何獨特的吸引力,吸引玩家注目?

2012年8月16日 星期四

2012年8月9日 星期四

PHP MySQL 提取未來三十天生日客戶資料(關於跨年取數問題)


最近應上司要求為公司網站的後台加添一個小功能,標示未來三十天生日的客戶並致上祝賀。這個要求不難,我花少少時間便解決。然而因為筆者個性太慎重小心,於是再花時間調試,果然發生不可預料的問題:系統不懂得跨年計算!

平素MySQL內建的 DATE_FORMAT() 或 DAYOFYEAR() 等函式配合 curdate() 都能用作運算天數,如今天為八月九日, date('m-d',strtotime('+30 day')) 即能求出一個月後即九月八日,丟進SQL中要求提取這兩天時間帶以內生日的客戶,本來十分淺顯易懂。然而本人嘗試將Server調為十二月二日以後,這段程序立即失效。貌似MySQL不能理解12-02至01-01,提前為12-01至12-31倒可以提出十二月份生日的紀錄,反之一月也可以,就是十二月至一月是不成功。

網上Google及百度後似乎沒有人提及這個問題,也許沒有人有需要寫這樣的程序www沒辦法君子求諸己,粗粗的隨便寫一支應急,避免年底Bug發生時被上司興師問罪。

<?php
//連接資料庫
include ('admin/mysql_conn.php');
//求取今天日期
$dateST = date('m-d');
//將今天日期累加三十,即為未來一個月
$dateEN = date('m-d',strtotime('+30 day'));
if ($dateST >= '12-02') {
//12-02起跨年計算用的SQL函式
$sql = "SELECT *
FROM customer
WHERE (DATE_FORMAT(birthday,'%m-%d') >= '$dateST' and DATE_FORMAT(birthday,'%m-%d') <= '12-31')
OR (DATE_FORMAT(birthday,'%m-%d') >= '01-01' and DATE_FORMAT(birthday,'%m-%d') <= '$dateEN')";
} else {
//其他正常日子用的SQL函式
$sql = "SELECT *
FROM customer
WHERE DATE_FORMAT(birthday,'%m-%d') >= '$dateST' and DATE_FORMAT(birthday,'%m-%d') <= '$dateEN'";
}
$result = mysql_query($sql, $mysql_conn) or die (mysql_error());
while ($row = mysql_fetch_array($result)) {
echo '<p>'.$row[name].'(ID:'.$row[ID].')&nbsp;Date:'.$row[birthday].'</p>';
}
$total_records = mysql_num_rows($result);
echo '<p>未來三十天內共有&nbsp;'.$total_records.'&nbsp;位客戶生日。</p>';
?>

先後排序、分頁啊甚麼的功能就不列出來,那些大家都懂的就省略吧。實驗調試是成功取出12-31及01-01兩天生日的會員,理論上應該沒有問題就是。本人暫時只想到這個可行方案,如果大家有更好的不妨留言指教,謝謝。

2012年8月7日 星期二

『ファンタシースターオンライン2』 - 20120807

終於在昨晚拼命升上LV30,脫離LV2X地獄,可喜可賀。這個遊戲的任務設定太懸殊,中間一個大斷層是啥意思?那麼在高興之餘,花少少時間回憶一下這段時間的有趣事件www


想當年拾到一具鑑定武器,噴出一柄七星統劍,大呼快樂時,朋友冷冷一句「這把是垃圾」。時至今天我終於明白,因為倉庫堆了好幾把……(暴汗)