PHP 板


LINE

看板 PHP  RSS
對不起,實在想不到一個簡短就能描述我的問題的標題 還請版上高手們能給我一點指引 小弟現在使用Smarty作為樣板引擎,小弟現在想要做的事情闡述如下 我的MySql資料庫中有三個資料表,用彼此的ID作為階層關係如下 project資料表中 有project_no project_name category資料表中 有 category_no category_name和指向所屬project的project_no items資料表中 有items_no items_name和指向所屬category的category_no 用這樣的資料庫設定方法很笨我知道@@" 可小弟還是php的新手 暫時對於太高深的做法還不太懂,如果有大大願意指點當然是最好XD 因為很多地方會需要將這些東西全部list出來,因此小弟將他們包裝成一個class 並指定了一個getlist方法 class程式碼如下 class OutputList { var $ouput_list = array(); function OutputList (&$db) { $sql = "select * from project left join category on ". "project.project_no = category.project_no left join items on ". "category.category_no = items.category_no order by ". "project.project_no,category.category_no,items.items_no"; $this->ouput_list = &$db->getAll($sql); } function getList(){ return $this->ouput_list; } } 然後在需要使用的php程式中new出,並指定樣板 //=============================================== // 取得output列表 //=============================================== $output_list_object = new OutputList($db); $ouput_list = &$output_list_object->getList(); if (DB::isError($output_list_object)) { header("Content-Type: text/plain; charset=utf-8"); die ($output_list_object->getMessage()); } //=============================================== // 樣板處理 //=============================================== $smarty = new Template(); $smarty->assign('output_list', $output_list); //=============================================== // 顯示頁面 //=============================================== $smarty->assign( 'content_file', 'output_list.tpl.htm' ); $smarty->display('main.tpl.htm'); 而樣板output_list.tpl.htm中,輸出的部分如下 {section name="sec1" loop=$output_list} <tr> <td width="10%" align="right">{$smarty.section.sec1.iteration}</td> <td>{$output_list[sec1].project_name}</td> <td>{$output_list[sec1].category_name}</td> <td>{$output_list[sec1].items_name}</td> </tr> 問題來了,這樣的方法很笨我知道@@" 輸出的表格會變成三個階層都顯示 就像是items也會顯示前面的project跟categary 所以我的第一個問題是,可否在不要用到js、jquery之類的動態技術 就可以顯示這筆資料的最後一個階層,如果這筆資料只有到category, 那麼就顯示category就好,不用顯示他的project 簡單來說就是我希望這表格看起來比較有階層關係@@" 第二個問題是,我希望在這表格後方加上一個checkbox 可以讓使用者複選category和items後,將所選的category或是items的no值傳出 但這checkbox僅有category和items才有,project沒有 在Smarty中我知道有HTML_checkboxes可以使用 但我實在沒有一個概念要怎麼樣用出我想要的顯示 以上兩個問題寫的落落長,還請版上高手不吝指教@@" 小弟銘感五內 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.241.249.107
1F:→ tkdmaf:我的規則是:除宣告動作、屬性,建構式內不寫任何程式。 03/14 00:00
2F:→ catjimmy:可以問一下這樣有甚麼好處嗎? 結構性? 03/14 14:10
3F:推 walilecow:這個程式看起來只做讀取資料...不用class應該也可以吧 03/14 22:55
4F:→ tkdmaf:建構式為物件實體化時會預先處理的方法。 03/14 23:35
5F:→ tkdmaf:所以一般而言,主要就是用於初始化或預載入功能。 03/14 23:35
6F:→ tkdmaf:你不一定一隻物件會預載入多少方法。 03/14 23:36
7F:→ tkdmaf:在單一職責中,每個方法都會是一個獨立功能的個體。 03/14 23:36
8F:→ tkdmaf:而建構式則只是選擇你想預載入那些個體執行或宣告屬性。 03/14 23:36
9F:→ tkdmaf:一但你因為某些因素需要修改預載方法時才不會被一堆程式碼 03/14 23:37
10F:→ tkdmaf:弄得不知改如何去改。 03/14 23:37
11F:→ tkdmaf:另外一點就是如果善用繼承後覆蓋父類別建構式時...... 03/14 23:38
12F:→ tkdmaf:自己的建構式要載入方法就比較容易處理。 03/14 23:38







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BabyMother站內搜尋

TOP