標題:
8-1-2 「作用中」的資料錄
[打印本頁]
作者:
小誌
時間:
2011-4-20 10:07
標題:
8-1-2 「作用中」的資料錄
8-1-2 「作用中」的資料錄
在我們存取資料表的資料時,是以一筆資料錄為單位!也就是說:我們只能對「作用中」的資料錄進行資料存取的動作。當我們開啟資料表時,「作用中」的資料錄位置是在資料表的第一筆資料上,如果我們想要改變目前操作的「作用中」的資料錄位置,怎辦呢?
當我們利用「mysql_featch_array()」函數取得一筆資料錄資料後,則「作用中」的資料錄位置會自動移到下一筆尚未提取資料的資料錄位置上,當我們在變換資料錄位置時(變更作用中資料錄位置),要小心一件事,那就是作用中資料錄位置是否移過了最後一筆資料的位置!也就是全部的資料錄都已經提取過資料了。
那我們如何得知全部的資料錄都已經提取過資料了呢?當我們利用「mysql_fetch_array()」函數取得資料錄資料所得的回傳值是false時就是作用中資料錄位置移過頭了,回傳值是false的原因還有一個,就是開啟的是一個空的資料表。
要提取全部的資料錄資料,又要避免「移過頭」的錯誤發生,則我們應該利用while迴圈敘述來提取資料:
//取得欄位數量
$fieldnum=mysql_num_fields($datalist);
//將資料錄轉換為欄位陣列集合
while ($fielddatas=mysql_fetch_array($datalist))
{
//輸出欄位資料
for ($x=0;$x<$fieldnum;$x++)
{
echo $fielddatas[$x] . "\t";
}
echo "<br>";
}
複製代碼
作者:
小誌
時間:
2011-4-20 10:08
實做學習1:
讀取Stuents資料庫裡「transcript(成績單)」資料表中全部的資料,並以表格型式輸出於網頁中:
[attach]5638[/attach]
圖8-9 範例ex08_06.php。
ex08_06.php
<?
$conn = mysql_connect("localhost", "root", "12345a");
if(@mysql_select_db("STUDENTS", $conn))
{
//指定提取資料的校對字元表
mysql_query("set character set big5");
//資料庫存在,建立SQL命令字串
$SQL="SELECT * FROM transcript";
//將回傳結果存放於變數中
$datalist=mysql_query($SQL);
//取得欄位數量
$fieldnum=mysql_num_fields($datalist);
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<title>範例ex08_06a</title>
</head>
<center><table border=1 width=100%>
<?
/**************列出欄位抬頭***************/
echo "<tr>";
for ($x=0 ;$x<$fieldnum;$x++)
{
echo "<td>" . mysql_field_name($datalist,$x) . "</td>";
}
echo "</tr>";
/**************列出欄位資料***************/
//將資料錄轉換為欄位陣列集合
while ($fielddatas=mysql_fetch_array($datalist))
{
//輸出欄位資料
echo "<tr>";
for ($x=0;$x<$fieldnum;$x++)
{
echo "<td>" . $fielddatas[$x] . "</td>";
}
echo "</tr>";
}
?>
<table></body>
</html>
<?
}
else
{
echo "資料庫不存在";
}
?>
複製代碼
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)