1. 程式人生 > >基於bootstrap和php的專案

基於bootstrap和php的專案

這幾天在做專案,前端頁面用bootstrap搭建,簡直快到無與倫比。動態頁面用php顯示,簡單來說就是從資料庫動態的讀取,再以列表的形式顯示部分資料,點進去能看到這個資料的詳細資訊。類似於從百度搜索問題->瀏覽搜尋結果->點進去檢視詳情,這樣一種套路。

資料是大神用爬蟲爬好的,20多萬條,由於百度有了防爬小組,知乎弄了驗證碼,很多借口不能用了,所以不能線上爬了,就先爬好放在資料庫裡,從資料庫中讀取。

資料庫用的mysql,用navicat這個工具進行使用。

伺服器用的apache,搭建在本地,把php專案部署在apache上,通過瀏覽器進行訪問。

前臺:

點選GO按鈕,左邊是百度的結果,右邊是知乎的結果。




遇到的問題:

1.把連線資料庫的函式封裝起來時,先這樣定義一些固定欄位:

在使用時,應該這樣寫才能用:


而我卻把它們都加上了引號來使用,如$con = mysql_connect(“DB_HOST”,“DB_USER”,“DB_PASSWORD”);導致報了連線失敗2002的錯誤,錯誤原因是對php語言不熟悉。

2.因為列表顯示結果部分內容時(如圖二),是從資料庫讀出來,然後一個while裡動態生成div,所以要達到點選標題->顯示完整問題和答案的效果,要把這一條的資訊傳遞給展示頁面(如圖三)。剛開始用的session傳整條資料庫記錄,然而在_SESSION['row']=row在while裡,所以一個while結束後,只把最後一條記錄傳了過去。_SESSION['row']這裡面的字串又不能改變,就算用字串連結的方法改變了,在下一個頁面也不好獲取,因為在下一個頁面時,已經不知道應該展示哪條記錄。然後每一條點選進去都會顯示最後一條的詳情。所以改變策略,用url傳。url會在點選它所在的連結時,才把資料傳過去。所以點選了哪條,就傳哪條的資料資訊。但是url只能傳單個值,比如?id=$row[0],當然也可以把這條記錄的所有欄位都這樣傳過去(這個解決辦法在敲這篇文章時想到的)。所以我只把一條記錄的id傳到了result.html裡,在result.html再通過id,進行資料庫查詢,然後展示結果。這樣做增大了資料庫的開銷。

我學會的內容:

1.用php動態生成網頁標籤:

ehco '<div>啦啦啦</div>';

2.session和url進行資料傳遞。