天天看點

一步一步教你用PHP+MySql搭建網站 No.2 圖檔顯示和Page頁面

接着上一章節的看,我們現在的程式有了第一個首頁面,但是我們會發現幾個問題,一個是首頁上的圖檔沒法顯示,二是點選read more ... 之後的連結沒有内容

這兩個頁面的入口分别是下圖裡面的兩個框出來的内容。

一步一步教你用PHP+MySql搭建網站 No.2 圖檔顯示和Page頁面

我們先來看圖檔顯示的頁面;

我們注意到其實這個連結的完整url是:

resize_image.php?image=...&max_width=...&max_height=...;

也就是說這個連結有3個參數: image是圖檔的名稱,max_width和height分别對應圖檔的寬和高。

那麼我們在這個頁面我們該如何處理呢?

一步一步教你用PHP+MySql搭建網站 No.2 圖檔顯示和Page頁面

這是resize_image.php的完整代碼,将原始的圖檔大小根據我們頁面輸入的width和height來進行壓縮或者放大,然後重新生成一張新的圖檔,用于顯示在頁面上。

接下來我們來看page.php頁面

一步一步教你用PHP+MySql搭建網站 No.2 圖檔顯示和Page頁面

因為點選page頁面其實相當于打開了3個不同類型的blog内容的詳細頁面,是以我們肯定是需要到資料庫裡面進行select操作的。

上一篇blog裡面有講解過,我們隻需要改變中間的顯示内容,是以在第10行和第47行,我們分别引入了header.php和footer.php ,中間的内容我們通過資料庫查詢以後再顯示出來。

我們展示page頁面的時候,可能有時候是使用者點選了某一條story,這時候參數裡面會有story,傳入的是故事的id;或者可能是某一類的隻有page字段,是以根據參數中有沒有story,我們來決定我們的select該怎麼寫。

但是無論如何,我們最後得到的都是這樣的表結構:

一步一步教你用PHP+MySql搭建網站 No.2 圖檔顯示和Page頁面

我們再來回顧下stories表的建立過程:

一步一步教你用PHP+MySql搭建網站 No.2 圖檔顯示和Page頁面

注意看到id字段不僅僅是primary key,而且它還是auto_increment屬性,在mysql裡面,auto_increment就是自增字段,每次插入資料時,會自動查詢目前序列的最大值,然後加1,

一步一步教你用PHP+MySql搭建網站 No.2 圖檔顯示和Page頁面

大家看我的stories表中存的所有内容,1-7都是我們通過教材手動insert進去的,然後會發現接下來就是11了,而并沒有8,9 和10 ,是因為我在開發過程中進行了插入和删除操作,我把id為8,9,10的記錄删除了,是以在表中沒有顯示,但是即便這時候你的表裡面最大的id是7,他的記錄也會插進去11,也就是說 這個自增的序列是獨立于目前的表的,和oracle的自增序列一樣,但是我不太清楚mysql裡面的自增序列和oracle有哪些差別。

oracle中的自增序列的建立方法是:

然後使用的時候就直接insert .... values(seq_id.nextval)就相當與插入了下一個自增序列的下一個值,是以在oracle裡面可以有好幾個自增序列,但是不太清楚mysql裡面自增序列這塊是怎樣的,目測是隻有一個公用的自增序列。

好了我們回歸正題,在while循環體内,我們能看到每個故事是由4部分組成的,

27行:

顯示每篇story的headline,

29-35行:

根據存儲的picture名稱來顯示出圖檔,使用的方法仍然是我們上面提到的resize_image.php

36-41行:

這裡我們需要用到db_fns.php中的新的函數:

把下面的函數添加進 db_fns.php中,這個函數很簡單,就是把目前sotry的writer資訊找到。

一步一步教你用PHP+MySql搭建網站 No.2 圖檔顯示和Page頁面

然後顯示文章修改的時間:

這裡在資料庫裡面存儲的是10位的時間戳形式的,顯示的時候 根據格式做一下轉換就好了:

44行

顯示故事的主題内容。

好了,這樣我們就能看到界面上的圖檔,然後也能點選主界面上的大部分按鈕了。

下一章節我們來進行使用者登入,然後新增文章等操作。