RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 


 
主題: [php] [問題] 不同形式的產品列表   字型大小:||| 
bbx1
銅驢友〔中級〕
等級: 9等級: 9等級: 9
bb

 . 積分: 132
 . 精華: 1
 . 文章: 402
 . 收花: 822 支
 . 送花: 528 支
 . 比例: 0.64
 . 在線: 1632 小時
 . 瀏覽: 8344 頁
 . 註冊: 7214
 . 失蹤: 2135
#1 : 2008-10-14 03:40 PM     只看本作者 引言回覆

小的只是個剛接觸PHP的新手, 希望各位好好鞭策我一下XD

我希望用PHP顯示出產品清單 (純用變數給值, 不用db)
但需要兩種列表模式
列表方式如下:

第一種
[系列1]
-- [link:aa] 產品A ~[類型1]
-- [link:bb] 產品B ~[類型2]
[系列2]
-- [link:dd] 產品D ~[類型1]
-- [link:ee] 產品E ~[類型3]

第二種
[類型1]
-- [link:aa] [系列1] 產品A
-- [link:dd] [系列2] 產品D
[類型2]
-- [link:bb] [系列1] 產品B
[類型3]
-- [link:ee] [系列2] 產品E

這可難倒我了... 因為我原本只是用個多維陣列用[foreach]來顯示
而類型跟系列有有重複的值
*** 一個 [系列] 裡會有1台以上的 [產品] , 而每個產品會被歸類於 3個左右的 [類型] 中 ***


為了方便未來修改作業的便利性, 只打算用一套 多維陣列(或其他物件) 來給予值
不知是否有辦法達成我想要的結果??
請各位老手指點迷津了, 感謝先

p.s. 好像解釋的亂七八糟, 如有語意不明的地方請告知我讓我詳述, 抱歉XD



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
陽だまり
白銀驢友
等級: 15等級: 15等級: 15等級: 15等級: 15
ささらの可愛さは異常

 . 積分: 1330
 . 精華: 1
 . 文章: 3159
 . 收花: 10387 支
 . 送花: 26639 支
 . 比例: 2.56
 . 在線: 4508 小時
 . 瀏覽: 30308 頁
 . 註冊: 7198
 . 失蹤: 1206
 . 星の彼方
#2 : 2008-10-14 04:11 PM     只看本作者 引言回覆

有資料的範例

輸出的範例嗎

小弟看不懂您在說什麼



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
bbx1
銅驢友〔中級〕
等級: 9等級: 9等級: 9
bb

 . 積分: 132
 . 精華: 1
 . 文章: 402
 . 收花: 822 支
 . 送花: 528 支
 . 比例: 0.64
 . 在線: 1632 小時
 . 瀏覽: 8344 頁
 . 註冊: 7214
 . 失蹤: 2135
#3 : 2008-10-14 06:30 PM     只看本作者 引言回覆

真抱歉, 果然我的國文太爛了XD....
剛剛草率地用html寫一下我想輸出的兩種結果
請參考這頁

因為我希望能自動列出<li>與<dd>的部份, 所以我想把值設定array再用for來呼叫陣列
但我完全沒概念怎麼寫...所以提不出資料的範例...
大概構想過要設定為陣列的值有:

    * 系列名: BoxWriter, NewTonnie, JuniBox
    * 產品名: 7220M4, 7160, 7220, NT43, NT44, YAS, YAM
    * 類別: Standalone, PC-Connect, Auto Publisher
    * 各產品連結

以下是該頁面的語法貼在此方便各位參考

<p><b>Sort By Series</b></p>
<dl>
        <dt>BoxWriter</dt>
        <dd><a href="#">BoxWriter 7220M4<sub>Standalone</sub></a></dd>
        <dd><a href="#">BoxWriter 7160<sub>PC-Connect</sub></a></dd>
        <dd><a href="#">BoxWriter 7220<sub>Auto Publisher</sub></a></dd>
        <dt>NewTonnie</dt>
        <dd><a href="#">NewTonnie NT43<sub>Standalone</sub></a></dd>
        <dd><a href="#">NewTonnie NT44<sub>Standalone</sub></a></dd>
        <dt>JuniBox</dt>
        <dd><a href="#">JuniBox YAS<sub>PC-Connect</sub></a></dd>
        <dd><a href="#">JuniBox YAM<sub>Auto Publisher</sub></a></dd>
</dl>

<p><b>Sort By Type</b></p>
<dl>
        <dt>Standalone</dt>
        <dd><a href="#">BoxWriter 7220M4</a></dd>
        <dd><a href="#">NewTonnie NT43</a></dd>
        <dd><a href="#">NewTonnie NT44</a></dd>
        <dt>PC-Connect</dt>
        <dd><a href="#">BoxWriter 7160</a></dd>
        <dd><a href="#">JuniBox YAS</a></dd>
        <dt>Auto Publisher</dt>
        <dd><a href="#">BoxWriter 7220</a></dd>
        <dd><a href="#">JuniBox YAM</a></dd>
</dl>
----------------
麻煩各位先輩了!



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
dayi
開墾隊隊員
等級: 14等級: 14等級: 14等級: 14
ZeroX

十週年紀念徽章(五級)  

今日心情

 . 積分: 935
 . 文章: 2060
 . 收花: 7802 支
 . 送花: 2401 支
 . 比例: 0.31
 . 在線: 2821 小時
 . 瀏覽: 61582 頁
 . 註冊: 6891
 . 失蹤: 990
 . ZeroX
#4 : 2008-10-14 07:38 PM     只看本作者 引言回覆


引用:
bbx1寫到:
為了方便未來修改作業的便利性


就這句話來說
還是用個DB吧

不限定一定要用實體DB(如MS SQL,Oracle..)
也可以用SQL Lite的memory DB
透過sql語法就可以達成你要的效果
節省你花在程式上的時間



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
陽だまり
白銀驢友
等級: 15等級: 15等級: 15等級: 15等級: 15
ささらの可愛さは異常

 . 積分: 1330
 . 精華: 1
 . 文章: 3159
 . 收花: 10387 支
 . 送花: 26639 支
 . 比例: 2.56
 . 在線: 4508 小時
 . 瀏覽: 30308 頁
 . 註冊: 7198
 . 失蹤: 1206
 . 星の彼方
#5 : 2008-10-14 07:59 PM     只看本作者 引言回覆

假設這是檔案格式,排列分別是Series,Name,Type

BoxWriter,BoxWriter7220M4,Standalone
BoxWriter,BoxWriter 7160,PC-Connect
BoxWriter,BoxWriter 7220,Auto Publisher
NewTonnie,NewTonnie NT43,Standalone
NewTonnie,NewTonnie NT44,Standalone
JuniBox,JuniBox YAS,PC-Connect
JuniBox,JuniBox YAM,Auto Publisher
為了有排序的效果,我把他改成這樣

BoxWriter,BoxWriter7220M4,Standalone
JuniBox,JuniBox YAS,PC-Connect
BoxWriter,BoxWriter 7220,Auto Publisher
NewTonnie,NewTonnie NT43,Standalone
JuniBox,JuniBox YAM,Auto Publisher
NewTonnie,NewTonnie NT44,Standalone
BoxWriter,BoxWriter 7160,PC-Connect
這是跑出來的結果
http://hidamari.890m.com/241199.php
這是讀取的檔案格式
http://hidamari.890m.com/241199.txt

這是新手程式碼 XD

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>241199</title>
</head>
<body>
<?

// 依Series排列
$fp = file("241199.txt") ;
$fp_array = array() ;
natsort($fp);
echo '<p><b>Sort By Series</b></p>' ;
for($i=0;$i<count($fp);$i++){
        $fp_temp = explode(",",$fp[$i]) ;
        array_push($fp_array,$fp_temp[0]) ;
}
$fp_array = array_unique($fp_array) ;

if($fp_array!=NULL){
        do{
        $fp_pos = current($fp_array) ;
        echo '<dt>'.$fp_pos.'</dt>' ;
       
                for($j=0;$j<count($fp);$j++){
                $fp_temp2 = explode(",",$fp[$j]) ;
                        if($fp_temp2[0]==$fp_pos){
                                echo '<dd><a href="#">'.$fp_temp2[1].'<sub>'.$fp_temp2[2]."</sub></a></dd>\n" ;
                        }
                }
        }while($fp_pos = next($fp_array)) ;
}

// 依Type排列
$fp = file("241199.txt") ;
$fp_array = array() ;
$fp_array2 = array() ;
natsort($fp);
echo '<p><b>Sort By Type</b></p>' ;
for($i=0;$i<count($fp);$i++){
        $fp[$i] = array_slice(explode(",",$fp[$i]),1) ;
        array_push($fp_array2,$fp[$i][1]) ;
                $fp_array[$i] = array() ;
                for($j=count($fp[$i]);$j>-1;$j--){
                        if($fp[$i][$j]!=NULL){
                                array_push($fp_array[$i],$fp[$i][$j]) ;
                        }
                }
       
}
$fp_array2 = array_unique($fp_array2) ;
if($fp_array2!=NULL){
        do{
        $fp_pos = current($fp_array2) ;
        echo '<dt>'.$fp_pos.'</dt>' ;
       
                for($j=0;$j<count($fp);$j++){
                        if($fp[$j][1]==$fp_pos){
                                echo '<dd><a href="#">'.$fp[$j][0]."</a></dd>" ;
                        }
                }
        }while($fp_pos = next($fp_array2)) ;
}
?>
</body>
</html>
[陽だまり 在  2008-10-14 09:53 PM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
陽だまり
白銀驢友
等級: 15等級: 15等級: 15等級: 15等級: 15
ささらの可愛さは異常

 . 積分: 1330
 . 精華: 1
 . 文章: 3159
 . 收花: 10387 支
 . 送花: 26639 支
 . 比例: 2.56
 . 在線: 4508 小時
 . 瀏覽: 30308 頁
 . 註冊: 7198
 . 失蹤: 1206
 . 星の彼方
#6 : 2008-10-14 08:00 PM     只看本作者 引言回覆


引用:
dayi寫到:

引用:
bbx1寫到:
為了方便未來修改作業的便利性


就這句話來說
還是用個DB吧

不限定一定要用實體DB(如MS SQL,Oracle..)
也可以用SQL Lite的memory DB
透過sql語法就可以達成你要的效果
節省你花在程式上的時間

就是這樣子沒錯
用db方便多了

不然還要在那邊拆字串又排序等的



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Jonson
金驢友〔初級〕
等級: 16等級: 16等級: 16等級: 16
藏雲

今日心情

 . 積分: 1796
 . 文章: 1756
 . 收花: 15380 支
 . 送花: 6709 支
 . 比例: 0.44
 . 在線: 5889 小時
 . 瀏覽: 77021 頁
 . 註冊: 7262
 . 失蹤: 8
#7 : 2008-10-14 08:02 PM     只看本作者 引言回覆

大量資料並不適合儲存在陣列中,建議用資料庫處理

PHP 不太熟,隨便寫寫,見附件......


 附件: 您所在的用戶組無法下載或查看附件


[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
bbx1
銅驢友〔中級〕
等級: 9等級: 9等級: 9
bb

 . 積分: 132
 . 精華: 1
 . 文章: 402
 . 收花: 822 支
 . 送花: 528 支
 . 比例: 0.64
 . 在線: 1632 小時
 . 瀏覽: 8344 頁
 . 註冊: 7214
 . 失蹤: 2135
#8 : 2008-10-15 10:28 AM     只看本作者 引言回覆

感謝各位先進的解說跟範例
速度果然驚人....我回家竟然倒下去呼呼大睡...汗顏XD

其實我本來只是個設計, 只對html有接觸
想試著使用PHP是考慮到許多網頁重複性上的問題 (例如導覽列等等...)
有些物件又對網站頗重要, 所以我不想用javascript (<noscript>還不是要寫一堆)

我想的這個產品清單會出現在每一頁的左側
一年公司可能會出1~2台機器, 要改的次數不多, 但要改的頁面過多,
所以我本想試著不用DB只用PHP來做看看, 不過看各位的意見似乎不用DB是自找麻煩呢...
或許是吧, 那這樣我得繼續去鑽研一下資料庫了:p

我先研究一下各位寫的這些範例, 如果有不懂的地方到時候再麻煩各位高手
感激不盡)


------
其實我的出發點是滿簡單的, 單純為了減少頁面修改的時間 (也減少出錯率)
SSI 也是選項之一, 但還沒確定以後會不會遷移主機, 滿擔心倒時候新伺服器沒這個功能

我也考慮過Smarty, 看過網路上的一些資料有些不明白, 不太敢嘗試XD

[bbx1 在  2008-10-15 10:31 AM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Ailio
版主
等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30
鸚鵡螺號 艦長

十週年紀念徽章(五級)  

今日心情

 . 積分: 2664
 . 文章: 6462
 . 收花: 22900 支
 . 送花: 4903 支
 . 比例: 0.21
 . 在線: 2826 小時
 . 瀏覽: 85748 頁
 . 註冊: 7211
 . 失蹤: 15
 . 莫名奇妙的商人星球
#9 : 2008-10-16 02:33 PM     只看本作者 引言回覆

其實DB 只要環境架的起來

基本語法 insert(新增) update(修改) delete(刪除)

都會就嚇嚇叫了

其實資料庫 就是單純紀錄一些資訊而已

粉簡單的(基礎應用而言)



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
psycho
鐵驢友〔初級〕
等級: 4


 . 積分: 42
 . 文章: 137
 . 收花: 353 支
 . 送花: 29 支
 . 比例: 0.08
 . 在線: 263 小時
 . 瀏覽: 1660 頁
 . 註冊: 5902
 . 失蹤: 4099
#10 : 2008-10-21 10:25 AM     只看本作者 引言回覆

其他有種東西叫做XML
和XSLT



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Frederic
版主
等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30
不定期上線

 . 積分: 282
 . 精華: 1
 . 文章: 2101
 . 收花: 1255 支
 . 送花: 457 支
 . 比例: 0.36
 . 在線: 237 小時
 . 瀏覽: 5420 頁
 . 註冊: 7078
 . 失蹤: 1226
#11 : 2008-12-17 02:51 PM     只看本作者 引言回覆


引用:
bbx1寫到:
所以我本想試著不用DB只用PHP來做看看, 不過看各位的意見似乎不用DB是自找麻煩..

以下純屬個人經驗發言,謝謝
也不是說自找麻煩啦
只是說
在資料新增、更新、刪除等一切編輯上會方便很多
尤其是在維護程式碼的時候
之前小弟曾用過類似使用寫入txt的
當資料量大的時候速度上會有一些的問題
且在檔案的連結上維護很不方便
但如果資料量真的“很少“
不用寫動態網頁也沒關係吧



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記

   

快速回覆
表情符號

更多 Smilies

字型大小 : |||      [完成後可按 Ctrl+Enter 發佈]        

溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別    關閉 表情符號    關閉 Discuz! 代碼    使用個人簽名    接收新回覆信件通知
發表時自動複製內容   [立即複製] (IE only)


 



所在時區為 GMT+8, 現在時間是 2024-3-29 06:34 AM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.027845 second(s), 6 queries , Qzip disabled