www1036 的部落格

[WebFund-F08] WEKN Term Project Report

成員:
范競之, www1036, 496511152        
吳俊毅, 496511217, 496511217
歐巡丞, ohsc98, 496511229
陳謙釩,  neilchen, 494390542

主題:DelicacyMap 美食地圖平臺

理由:
1.提供大眾共同分享美食的管道
2.減少饕客找尋美味的時間

技術:
1.PHP
2.Javascript
3.Gmap
4.Zk
5.MySQL
6.Xhtml
7.CSS

系統方面:
OS: linux-fedora
server: tomcat

server部份會選用tomcat的原因是為了透過JRE去run java程式,
我們ZK很多頁面都有到背後去溝通java,讓java去幫我們完成一
些事情,像是註冊後所發送的認證信就是透過java去寄的。

未來可能還會用到JSP的技術,去加強我們的網頁,但目前礙於資源
上的關係,我們主機只有一台,所以並沒有將tomcat跟apache分成兩
台主機,全部都在同一台主機上面run,不過這樣一來可能無法保護
JSP程式,導致安全性下降。

內容簡述:
可供使用者在此分享自己所發掘到的美食地點,也可以在此尋找自己心中理想的美食
,使用者可在此加入會員,以認證信方式啟動帳號的權限,可以正確地POST詳細的
地點資訊,利用PHP去做呈現,可以使用Search engine去作搜尋,當鍵入與資料庫
有相關的字詞,可以在底下馬上的作提示,地圖部份使用到Google Map,利用
javascript及php間的協調來從資料庫進行前端標點,首頁框架可隨意拖曳,似Google
首頁,右側使用到了CBox簡略的線上討論區,可供使用者在線上進行討論。

未來展望:
1.針對作品中如有寫死的部份,加以改善
2.更加注重安全性問題
3.多以使用者角度去思考,以維持「盡」可能迎合大眾所需求
4.美化網站主體

感想:
在經過了這次的實作經驗,讓我們實力算是提升了不少,但一些的基本概念可能還很薄弱
只知實作,卻不知內其原理,這恐會造成網站安全性等其他繁衍問題,這點是我們必須加
強的部份,除此之外,美工問題也同時發生在我們這組身上,我們只能靠zk的component
來進行修飾,但全都藍色的,還是不甚理想,這也是我們應當加強的部份。最後,我們都
能在實作過程中,依據時間定出每人應要完成的部份,趕不及也都能及時提出討論,最值
得欣慰的是,我們這組當中,都沒有拖拖拉拉,愛理不理人,所以工作我們都能夠均分,
各司其職,每個人都能學習到相關技術的東西以及團隊合作的重要性。

php分頁實作

圖中左上角的分頁實作如下

<?php            
$page;

if(!isset($_GET["page"])){
$page=1; //設定起始頁
//isset 在此是判斷後方參數是否存在           
} else {
$page = intval($_GET["page"]); //確認頁數只能夠是數值資料                 

}

$query = "SELECT * FROM `show_page` ";

if ( !( $database = mysql_connect( "localhost",
"iw3htp4", "iw3htp4" ) ) )                      
die( "Could not connect to database </body></html>" );   

if ( !mysql_select_db( "delicacy_db", $database ) )
die( "Could not open URL database </body></html>" );

if ( !( $result = mysql_query( $query, $database ) ) )
{
print( "Could not execute query! <br />" );
die( mysql_error() . "</body></html>" );
}

$items = mysql_affected_rows(); //取得總項數,以便算出分頁須幾頁    

$per = 10; //設定每頁顯示項目數量
$pages = ceil($items/$per); //計算總頁數
$start = ($page-1)*$per; //每頁起始資料序號,以便分次藉由sql語法去取得資料       

$query1 = "SELECT * FROM `show_page` LIMIT   $start  ,  $per ";
//每點任一分頁便執行取得該頁數的資料筆數


$result = mysql_query( $query1, $database );    

mysql_close( $database );
?>

<?php
for($i=1;$i<=$pages;$i++) {
if($i == $page) {
echo '<a class="linkcss" href="test.php?page='.$i.'" >[' . $i . '] </a>';    //顯示本頁的分頁數字會以[ ]包起來
}           
else if($i == $pages) {
echo '<a class="linkcss" href="test.php?page='.$i.'" >' . $i . '</a>';      //顯示末頁的分頁數字
}
else {
echo '<a  class="linkcss" href="test.php?page='.$i.'">' . $i . ',</a>';    //顯示其他的分頁數字會以" , "作區隔
}       
}

?>

透過第二段的php區塊中的程式碼會藉由test.php?page='.$i.' 連結到本身php檔案

再透過第一段的php區塊中的get去接收 $i

如圖網址列,若按下分頁其中一個數字,會顯示....../www1036/test.php?page=1

其中後方的 ?page=1

就是能夠刷新資料的源由

 

參考資料:http://twpug.net/modules/smartsection/item.php?itemid=42

MySQL語法訣竅

在資料庫中

我們必需定義我們的資料表以及欄的名字

但有時這些名字有可能

我們想要定義的名字與內建保留字相觸

上面看得懂嗎?!

看不懂?!

沒關係

舉個例子

萬一我們想要定義一個欄名叫作select

你若執行以下語法, 則會回傳錯誤的訊息

ALTER TABLE My_db ADD select TEXT NOT NULL ;

原因就是在於select是內建的保留字

那要怎麼去解決這個問題呢?

只需在自己定義的名字加上``即可,ex: `name`

所以上方應改成

ALTER TABLE `My_db` ADD `select` TEXT NOT NULL ;

就能解決這個與內建保留字相觸的問題: )

頁面