国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php從數據庫中讀取數據實現方法

2024-05-04 21:57:10
字體:
來源:轉載
供稿:網友

文章利用了一個簡單的實例來實現php從數據庫中讀取數據詳細講解先看段代碼,代碼如下:

  1. <?php 
  2. session_start(); 
  3. $con=mysql_connect('localhost','root','root'or die('鏈接數據庫失敗!'); 
  4. mysql_query('set names utf8'); 
  5. mysql_select_db('GuestBook'); 
  6. $pagesize = 10;//每一頁顯示多少留言記錄 
  7. if(isset($_GET['page'])&&$_GET['page']!=''$page=$_GET['page']; 
  8. else $page=0; 
  9. $sql = "SELECT a . * , b.name, b.email, b.qq, c.revert_time, c.revert 
  10.   FROM post a 
  11.   LEFT JOIN revert c ON ( a.id = c.post_id ) , guest b 
  12.   WHERE a.guest_id = b.id 
  13.   ORDER BY a.id DESC"; 
  14. $numRecord = mysql_num_rows(mysql_query($sql)); 
  15. $totalpage = ceil($numRecord/$pagesize); 
  16. $recordSql = $sql" LIMIT ".$page*$pagesize.",".$pagesize
  17. $result = mysql_query($recordSql); 
  18. ?> 

下面來看看.

第一行:我們暫時先不說,留到以后再說,暫時還用不到;

第二行——第五行:大家一定很眼熟吧,是的這里和post.php插入留言信息的時候的過程是一樣的,也就不多說了。

7、8、9和19行我們暫時不說,這里是涉及到分頁的,我們將會留到下一章詳細的說明這個問題,因為分頁的過程在web編程過程中幾乎是一個必須要使用的功能。

在11-15行我們定義了一個數據庫查詢語句,在這條語句中我們用了left join …on..語句,關于這個語句的詳細用法請參看Mysql手冊聯合查詢部分。。

看第16行,代碼如下:

$numRecord = mysql_num_rows(mysql_query($sql));

這個語句中我們用mysql_query($sql)把我們定義的sql語句發給數據庫來執行,這個語句執行以后會返回一個記錄資源號,我們用外層的mysql_num_rows來取得有多少個匹配的記錄——也就是返回的記錄總數。

第17行我們用到了ceil函數,這個函數的功能是,進一法取整,也就是說兩個數進行除法操作之后只要余數大于零整數部分就加一然后舍去小數部分,所以ceil(1/2)的結果是1,而不是我們通常所見到的0.5。這個對于我們來說很有用——也留到下一章分頁的時候再說吧。

第19行,涉及到分頁部分。但是這一行值得說的是,在PHP中字符串的相加,也就是字符串的連接,兩個字符串相加的操作符是點,看例子,代碼如下:

  1. $strFirst=”中國”; 
  2. $strTwo=”偉大的國度”; 
  3. $strSum = $strFirst.$strTwo
  4. echo $strSum

輸出的結果正如我們所料到的一樣:中國偉大的國度。

第20行:我們發送一個帶分頁功能的sql語句到數據庫執行,并把執行結果賦值給$result;

接著我們看,本頁函數的第:128-154行,這個程序的片段功能是循環輸出在數據庫中查詢到的記錄。這是我們本章的重點.

看PHP的內置函數mysql_fetch_object()從結果集中取得一行作為對象,關于PHP的對象我們在高級編程欄目中將會詳細的說明,我們這里只需要知道這種循環查詢記錄的方式,需要用 $對象->字段名 來訪問就行了,執行起來的時候就是每一次指針下移一次,當遇到沒有更多的記錄的時候就返回一個false所以我們可以用while循環來讀取$result的這個記錄集。

最終形成了while($rs=mysql_fetch_object($result))這個語句,循環調用mysql_fetch_object函數并且把每次返回的對象賦值給$rs變量,現在哦我們看這個循環的內部,我們可以用$rs->name來取得留言人姓名,用$rs->post_time來訪問留言時間。

在顯示post_time的時候我們做了一些處理,使用到了date()函數,記得我們存儲留言的時候用到了time()函數,這個函數返回的是一個時間戳,就是從1970年的第一秒起到現在已經經過的秒數(格林尼治時間)。而date函數就是把這個秒數翻譯為我們所需要的時間格式,返回怎樣的字符串需要們在date()函數的第一個參數中制定,該函數的第二個參數如果沒有給出,也就是需要翻譯成時間格式的秒數沒有給出的話,他就會以當前時間來翻譯。

Date(“Y年m月d日 H:i:s”),輸出結果就是2009年4月26日 11:16:20。

我們在index.php的132行有這樣的寫法,代碼如下:

<?php echo date(”Y-m-d H:i:s”,$rs->post_time+8*3600)?>

我們具體說說這個,我想大家一定會對8*3600這個地方感到奇怪,其實原因很簡單。咱們用time()函數存儲時間的時候用的是格林尼治時間,這個時間和我們的時間相差剛好八個小時,每個小時3600秒,我們處在東方比西方的時間快所以要加上的。記住我們用的是北京時間——處在東八時區哦,這個是常識!關于這一點還有一個做法,這將會在專門闡述PHP的日期函數的文章里詳細說明。

144和146行都用了兩個函數htmlspcialchars和nl2br,其中htmlspcialchars這個函數是為了避免用戶輸入的腳本代碼(html和javascript)被執行而必須的,這個函數很重要。如果沒有這個函數用戶輸入的js代碼和html代碼都會被作為頁面程序的一部分被執行,這一點我們在《關于PHP代碼安全性建議》一文中已經說過,不在贅述。

nl2br這個函數的作用是講數據中的n換行轉換成html的換行<br/>以便于頁面表現。在我們輸入留言信息的時候,用的<textarea></textarea>這個表單,保存信息的時候,換行使用n來表示的所以我們這里需要轉換,以保留用戶輸入信息在顯示的時候我輸入時段落一致。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 道真| 沁水县| 策勒县| 永靖县| 海淀区| 桂林市| 大渡口区| 盐源县| 武强县| 隆昌县| 怀来县| 建平县| 浦江县| 密山市| 黑河市| 绍兴市| 永新县| 泗洪县| 健康| 饶平县| 温州市| 田林县| 阿尔山市| 云安县| 江孜县| 嵩明县| 崇文区| 霍州市| 应城市| 纳雍县| 大新县| 吴川市| 海南省| 白城市| 绥化市| 台山市| 昌乐县| 南靖县| 寿阳县| 通辽市| 桐庐县|