八小時模組開發
一、從資料庫讀取單筆資料
PHP的寫法:
$sql="select cht from `xx_oxford` where `eng`='{$eng}'"; $result=mysql_query($sql) or die(mysql_error()); list($cht)=mysql_fetch_row($result);XOOPS的寫法:
$sql="select cht from ".$xoopsDB->prefix("oxford")." where `eng`='{$eng}'"; $result=$xoopsDB->queryF($sql) or redirect_header('index.php', 3, mysql_error()); list($cht)=$xoopsDB->fetchRow($result); $xoopsTpl->assign('eng',$eng); $xoopsTpl->assign('cht',$cht);- 因為每個 XOOPS 網站的資料表前置字元都不一樣,故必須用$xoopsDB->prefix("資料表名稱") 的方式來替資料表加上前置字元。
- 將 $sql 語法送到資料庫執行,可用 $xoopsDB->query($sql) 或者 $xoopsDB->queryF($sql),後者多用在「更新」、「刪除」等地方。
- 利用 $xoopsDB->fetchRow($result) 可將抓到的結果用數字索引陣列方式傳回,通常可搭配 list() 來將傳回資料指定到變數中。
- 用 $xoopsDB->fetchArray($result) 則是用文字索引陣列傳回。
- 利用「$xoopsTpl->assign('樣板標籤名稱' , $變數值);」可將變數送至樣板。
- 先利用<{if}><{/if}>判斷有無輸入關鍵字
- 「class="hero-unit"」是BootStrap用來製作醒目區域的一個樣式
- <{$eng}>或<{$cht}>都是利用「$xoopsTpl->assign('樣板標籤名稱' , $變數值);」從PHP傳來的樣板變數。
- 利用 SQL中「like」的語法,搭配萬用字元「%」,可以用來做模糊搜尋。
- 「$xoopsDB->fetchRow($result)」一次只會抓回一筆資料,故可以用 while() 迴圈,將所有符合條件的資料全部抓回來
- 若要套用至樣板迴圈,必須做成陣列形式:「$陣列名稱[$索引]['樣板標籤']=$變數值」
- 最後,一樣利用「$xoopsTpl->assign('樣板標籤名稱' , $變數值);」將陣列送至樣板。
- 樣板接收到陣列樣板變數,可以用 <{foreach}><{/foreach}>來拆解之。
- 「from=$陣列名稱」,from用來接收陣列變數。
- 「item=樣板標籤前置字元」,item用來指定迴圈中,樣板標籤的前置字元
- 迴圈中,若要指定某個陣列值,可用<{$樣板標籤前置字元.樣板標籤}> 的方式來呈現。