多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > php從數據庫中讀取數據實現方法

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

來源:程序員人生   發布時間:2014-04-23 17:17:39 閱讀次數:3491次

文章利用了一個簡單的實例來實現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來表示的所以我們這里需要轉換,以保留用戶輸入信息在顯示的時候我輸入時段落一致。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 精品国产一区二区三区国产馆 | 波多野结衣一区二区 | 天天澡天天碰天天狠伊人五月 | 亚洲社区 | 亚洲第一视频在线播放 | 国产日韩一区在线精品欧美玲 | 日韩精品久久一区二区三区 | 91成人午夜性a一级毛片 | 国产h在线 | 色阁在线| 欧美乱大交xxxxx在线观看 | 国产69久久精品成人看小说 | 亚洲一区二区三区久久 | 欧美日韩精品一区二区 | 一区二区在线欧美日韩中文 | 性国产videofree极品 | 国产一区二区自拍视频 | 国产亚洲精品激情一区二区三区 | xxxxwww日本| 亚洲国产欧洲 | 日韩欧美亚洲国产高清在线 | 欧美性猛交xxxxx按摩国内 | 91四虎国自产在线播放线 | julia一区二区三区中文字幕 | 日本亚洲国产精品久久 | 直接在线观看的三级网址 | 欧美一级毛片不卡免费观看 | 亚洲成a人片在线观看尤物 亚洲成a人片在线观看中文!!! | 亚洲综合久久综合激情久久 | 免费视频网站在线观看 | 无毒三级 | 日韩欧美印度一级毛片 | 99精品一区二区三区 | 欧美高清免费一级在线 | 亚洲老女人 | 在线观看www | 大学生一一级毛片在线播放 | 国产乱码一区二区三区四区 | 欧美成人午夜视频 | 欧美国产亚洲一区二区三区 | 外国美女一级片 |