[PHP] Web Framework : CodeIgniter MySQL Database 使用教學

繼上一篇 [PHP] 好用 Web Framework : CodeIgniter 安裝教學 之後,這次來紀錄一下 Database Class 的用法,我想官方網站都已經寫的很詳細了,就大概快速講一下我的一些用法跟心得,其實最主要講的是內建的 Active Record Class,它可以快速撰寫 SQL 語法,不必打 where 或者是 From 這些字眼,insert update select 都可以利用 Active Record Class 很簡單的撰寫出來喔,它也幫忙簡單的檢查 escape SQL Injection,舉的簡單例子大概就知道了: 假設底下這個簡單的 join 一個表格的 select 語法

$query = $this->db->query("SELECT a.news_id, a.news_name, a.add_time FROM project_news a
 left join project_news_categories b on a.categories_id = b.categories_id
where news_id = '".$id."' order by news_top DESC, a.add_time DESC
");
利用

Active Record Class 可以改寫成:

$this->db->select('a.news_id, a.news_name, a.add_time');
$this->db->from('project_news a');
$this->db->join('project_news_categories b', 'a.categories_id = b.categories_id', 'left'); 
$this->db->order_by("news_top DESC, a.add_time DESC");
$this->db->where('news_id', $id); 
[Read More]

[PHP] 好用 Web Framework : CodeIgniter 安裝教學

最近都在 survey 一堆 PHP Web Framework,自己想學一套可以馬上上手的,其實因為目前在 PHP 的開發上面講求速度,以及程式的可維護性,雖然我自己有一套自己的開發方法,包含包好的 SQL Class 以及上傳模組,不過還是覺得熟悉一套 MVC 架構的寫法,將來維護或者是團隊合作方面會比較好分工,在小專案上面還可以自己來,但是大型專案就必須靠 MVC Framework 了,畢竟一個人寫程式,永遠比不上團隊合作,紀錄一下最近找到的一些網路比較多人用的 FrameWork:

[Read More]

[高雄] Python 入門 – Python tutorial

在現今 Google 的大多數服務都是利用 Python 程式撰寫,例如:Google App Engine,之前買下的 Youtube 影音網站,就是因為 Youtube 是用 Python 的程式撰寫起來的一個 Web 2.0 網站,在上禮拜去參加了 工作坊 所開的一門入門的課程 Python 入門 - Python tutorial - 第一梯 (講者:黃宇新),這課程是給要學習 Python 的基本入門,講師 黃宇新 教的真的很棒,把 Python 的精神都講的非常好,自己感覺跟 Perl 的功能差沒多少,可是兩種語言在比較方面各有優缺點,聽完最大的感想歸納為兩點,那就是 Python 產生線上文件相當方便,還有非常的快速模組化,每個 Python 程式都是一個獨立模組,在其他 Python 程式裡面都以利用 import 方式來交互使用,個人認為在 系統管理、網路管理、網路傳輸程式、網頁程式開發 上面會有相當大的幫助。 Python 還有一個優點就是程式可閱讀性,在每個程式都必須有良好的撰寫習慣,那就是要善用 tab 鍵來排版,不然程式就是會錯誤,底下一個 Python 的例子,九九乘法表:

#!/usr/local/bin/python
for i in range(1,10):
  for j in range(1,10):
    print "%d*%d=%s" % (i,j,i*j),
  print ""
[Read More]

[高雄美食]四維路巴洲排骨飯

CIMG0183 說起這一間巴洲排骨飯,算是我已經吃了有10年之久了吧,從一間不起眼的店面,現在生意可好的很,服務態度真的不錯,不過價位方面真的有點偏貴,又漲價5元的關係吧,原本雞腿飯是80元,現在是85元了,不過老闆做的飯,跟炒起來的菜真的沒話說,好吃,米飯方面也許有加上一點油香,所以吃起來很入口,真的很好吃,也推薦給大家吃看看,地址是在光華路跟四維路的交叉口喔,大家可以去那邊嘗試看看,東西都是現場現做。

[Read More]

New in Labs:Gmail search autocomplete 快速找尋使用者 email 跟附件檔案

Gmail 又推出一個 Lab 功能了,這個功能我想是大家所期待許久的,可以直接對於搜尋使用者跟附件有相當大的幫助,可以針對附件,郵件裡面的 vedio,圖片副檔名 .jpg、.png、.doc 下去做搜尋的動作,很方便的,也可以針對郵件的 email 或者是姓名搜尋,提供了 autocomplete 的作用,您只需要打入兩個關鍵字,就會出現相關的使用者姓名或者是 email 喔,方便的,可以參考:New in Labs: Gmail search made easier (and lazier)。 使用方法只要去 Settings -> Labs 把功能打開即可 Google_01 (by appleboy46)

[Read More]

[jQuery] 解決 IE6 不支援 :hover CSS

目前 IE 並不支援 :hover 的功能,難怪只有 FireFox 可以看的懂 :hover CSS 的功能,上網查了一下解決方法,當然就是利用幫忙處理瀏覽器相容性的 javascript Framework:利用 jQuery 就可以解決 IE 這部份的不相容,參考了 Whatup 的 Blogtr hover 在 IE 上的 hack,解法也寫的很清楚。 先看看 html

test1 test2
css 寫法:
tr.row1	{ background-color: #EFEFEF; }
tr.row1:hover td{
background-color: #D1D7DC;
}
[Read More]

利用 freebsd-update 升級 FreeBSD security patch 安全性

在玩 FreeBSD 系統一定會常常需要升級 security 的 patch,之前寫過一篇手動升級 FreeBSD security patch:FreeBSD 的 security patch 跟 如何 upgrade,那篇寫的內容也很容易瞭解,那現在又有另一種升級方式,就是利用 FreeBSD 內建指令 freebsd-update,這是可以 fetch 或者是 install 和 rollback binary 升級系統,不過這指令只能用在 Release Engineering 的系統上面,例如 FreeBSD 7.1-RELEASE and FreeBSD 7.1-RC1,不可以使用在 FreeBSD 6.2-STABLE 或者是 FreeBSD 7.0-CURRENT 版本上面,那在 DK大神 blog 上面有寫一篇可以升級 PRERELEASE 系統:用 freebsd-update 將 FreeBSD 7.1-PRERELEASE 升級到 7.1-RELEASE,這方法可以騙過 freebsd-update 指令,不過我想本身要對 FreeBSD 很熟阿,不然會遇到很多地雷阿。 基本 OPTIONS 如下:

-b basedir   -- 指定系統掛載根目錄 預設值:/
                (default: /)
-d workdir   -- 檔案暫存的地方
                (default: /var/db/freebsd-update/)
-f conffile  -- 讀取基本設定檔
                (default: /etc/freebsd-update.conf)
-k KEY       -- Trust an RSA key with SHA256 hash of KEY
-r release   -- 指定 Release 版本 (e.g., 6.2-RELEASE)
-s server    -- 指定抓取哪一台伺服器
                (default: update.FreeBSD.org)
-t address   -- 搭配 corn 指定 email,當執行完畢,寄信通知使用者
                (default: root)
[Read More]

MySQL count(“欄位”) vs mysql_num_rows 速度?

在 FreeBSD ports 裡面還沒看到 chinese/phpbb3 的 ports,目前只有 chinsan 維護的 chinese/phpbb-tw ports,之前版本是 2.0.22 版本,後來我 commit 到 2.0.23 版本,不過 PHPBB 官網已經不再維護或者是開發 2.0.X 版本了,現在以 PHPBB3 為版本開發,也針對了 PHP6 跟 PHP 5 的相容性做了很大的改變,所以基本上如果在 2.0.X 版本加了很多外掛,那就沒辦法升級到 phpBB3 版本了,畢竟 code 實在改變太多了,找個時間把 chinese/phpbb3-tw commit 進去,不然也可以到 www/phpbb3 做安裝。 為什麼會提到 phpBB 呢,今天在 trace phpBB3 的 code,發現原本在 phpBB2 裡面有支援 mysql_num_rows function,用來讓程式可以取出 sql 的個數,不過在 phpBB3 竟然就把這個 function 拿掉了。 phpBB2 mysql4.php 程式:

function sql_numrows($query_id = 0)
{
	if( !$query_id )
	{
		$query_id = $this->query_result;
	}

	return ( $query_id ) ? mysql_num_rows($query_id) : false;
}
[Read More]

[PHP] Zend 使用 Google Calendar API – 新增、刪除事件 – END

這篇算是 Google Calendar API 的結尾文章了,只剩下新增、刪除兩個功能尚未說明,那這兩個功能野蠻簡單的,底下就來介紹如何新增單一事件功能,看看是否要增另外新檔案放 form 的表單,我是把表單放入 index.php 再把資料傳送到 news.php 此檔案,先介紹 form 表單:

[Read More]

[PHP] Zend 使用 Google Calendar API – 編輯事件

上一篇介紹了瀏覽 Google Calendar API 範圍內所有的事件,有沒有發現在 index.php 就有瀏覽單一事件的連結,我們透過 API 可以取得單一事件的 evenID,取得的方式就是透過 basename 函式:

basename($event->id->text)
我們可以利用 $_GET 方式讀取到 evenID 值,傳送到 event.php 來接收
$eventId = ( isset($_POST['id']) ) ? $_POST['id'] : $_GET['id'];
1. 新增 event.php 檔案,寫入開頭:
where as $where) {
  $whereValue = $where->valueString;//地點
}
?>
[Read More]