顯示具有 PHP 標籤的文章。 顯示所有文章
顯示具有 PHP 標籤的文章。 顯示所有文章

2012年11月22日 星期四

PHP行事曆(列印用)範例


這支源碼是先月前應上司要求而寫,主要是列印填寫。為方便iPad列印,所以直接寫為PHP上傳至Server,以利員工隨時打印。雖然最後不了了之OTL,但也將之細部微調,放流源碼供大家參考學習。

編寫上主要以PHP及jQuery為主,員工可依個人要求,自由增刪行數後列印出來填寫。當時為節省時間,使用網上流傳不知名的日曆源碼修改即製。因為效率至上,所以不使用HTML5及DIV。反正不需對外開放,更不想要Google搜索,直接用Table架構即可。如果有興趣的朋友可以「魔改」變成DIV,難度不大。

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年7月19日 星期四

小試牛刀:利用Google Map API 查地點經緯度

闊別接近兩年以上才重返IT界,即使工作已一星期以上還是渾渾乎心驚膽跳。因為上司待吾不薄,加上自己要求高,所以對於寫出來的網站總要十全十美。偏偏兩年的空窗期在IT界很要命,PHP已經換成第六代,Google API有新版本……自己本來會的技術都落伍,只好拼命買參考書狂吃下肚子自我增值。

最近應公司要求將Google Map置入網站中,其中的要求很簡單,就是讓用家輸入地址,然後直接顯示Google Map地圖定位。說起來很簡單,但後續問題不少。比方說為方便將來改寫為Mobile版,不能用iframe tag打混;需要輸入資料庫,所以要求經緯度……

花了一天時間在Google Map API的教學頁翻來閱去,終於成功解決BOSS要求,滿足感十分高。當然就功能及介面上十分陽春,但這些都是「外掛」,之後再慢慢加上去,大家都懂的吧。
無師自通的第一步,貴在於「抄」,直接用Google教學文件的範例參考後略作修改,取得基礎源碼。