Board logo

標題: 8-1-2 「作用中」的資料錄 [打印本頁]

作者: 小誌    時間: 2011-4-20 10:07     標題: 8-1-2 「作用中」的資料錄

8-1-2   「作用中」的資料錄
在我們存取資料表的資料時,是以一筆資料錄為單位!也就是說:我們只能對「作用中」的資料錄進行資料存取的動作。當我們開啟資料表時,「作用中」的資料錄位置是在資料表的第一筆資料上,如果我們想要改變目前操作的「作用中」的資料錄位置,怎辦呢?

當我們利用「mysql_featch_array()」函數取得一筆資料錄資料後,則「作用中」的資料錄位置會自動移到下一筆尚未提取資料的資料錄位置上,當我們在變換資料錄位置時(變更作用中資料錄位置),要小心一件事,那就是作用中資料錄位置是否移過了最後一筆資料的位置!也就是全部的資料錄都已經提取過資料了。

那我們如何得知全部的資料錄都已經提取過資料了呢?當我們利用「mysql_fetch_array()」函數取得資料錄資料所得的回傳值是false時就是作用中資料錄位置移過頭了,回傳值是false的原因還有一個,就是開啟的是一個空的資料表。

要提取全部的資料錄資料,又要避免「移過頭」的錯誤發生,則我們應該利用while迴圈敘述來提取資料:
  1.       //取得欄位數量
  2.       $fieldnum=mysql_num_fields($datalist);
  3.       //將資料錄轉換為欄位陣列集合
  4.       while ($fielddatas=mysql_fetch_array($datalist))
  5.           {
  6.              //輸出欄位資料
  7.              for ($x=0;$x<$fieldnum;$x++)
  8.                 {
  9.                  echo $fielddatas[$x] . "\t";
  10.                 }
  11.              echo "<br>";  
  12.           }
複製代碼

作者: 小誌    時間: 2011-4-20 10:08

實做學習1:
讀取Stuents資料庫裡「transcript(成績單)」資料表中全部的資料,並以表格型式輸出於網頁中:
[attach]5638[/attach]
圖8-9  範例ex08_06.php。
ex08_06.php
  1. <?
  2.     $conn = mysql_connect("localhost", "root", "12345a");
  3.     if(@mysql_select_db("STUDENTS", $conn))
  4.      {
  5. //指定提取資料的校對字元表
  6. mysql_query("set character set big5");
  7.       //資料庫存在,建立SQL命令字串
  8.       $SQL="SELECT * FROM transcript";
  9.       //將回傳結果存放於變數中
  10.       $datalist=mysql_query($SQL);
  11.       //取得欄位數量
  12.       $fieldnum=mysql_num_fields($datalist);
  13. ?>
  14. <html>
  15. <head>
  16. <meta http-equiv="Content-Type" content="text/html; charset=big5">
  17. <title>範例ex08_06a</title>
  18. </head>
  19. <center><table border=1 width=100%>
  20. <?
  21. /**************列出欄位抬頭***************/
  22. echo "<tr>";     
  23.       for ($x=0 ;$x<$fieldnum;$x++)
  24.          {
  25.           echo "<td>" . mysql_field_name($datalist,$x) . "</td>";
  26.          }
  27. echo "</tr>";   
  28. /**************列出欄位資料***************/
  29.       //將資料錄轉換為欄位陣列集合
  30.       while ($fielddatas=mysql_fetch_array($datalist))
  31.           {
  32.              //輸出欄位資料
  33.              echo "<tr>";
  34.              for ($x=0;$x<$fieldnum;$x++)
  35.                 {
  36.                  echo "<td>" . $fielddatas[$x] . "</td>";
  37.                 }
  38.              echo "</tr>";  
  39.           }
  40. ?>
  41. <table></body>
  42. </html>
  43. <?
  44.      }
  45.     else
  46.      {
  47.       echo "資料庫不存在";
  48.      }
  49. ?>
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)