從數據庫裡取出數據放到表格裡php有本身的方法,如odbc_result_all(),該函數用來將取得的資料轉成HTML 的表格 (table) 格式,但必須是SQL語句裡的選出來的字段,可能顯示的數據並不是你全部選的字段。另一些可能要做選擇,或者判斷的。所以我寫了這段代碼來生成一個表格。想要顯示的字段完全由一個數組控制。而且可以根據需要改變數組裡的某個字段的值。代碼如下:
/* showtable.php
*
* Created by Xu Jie
* Date: 03/01/2001
*/
function showHeader($arr_header)
{
$col = sizeof($arr_header);
echo "
";
do
{
echo "
".pos($arr_header)." |
";
}
while (next($arr_header));
echo "
";
}
function showList($head,$arr_data)
{
$i=0;
do
{
$header[$i++] = key($head);
}
while (next($head));
for ($i=0;$i
{
if ($i%2==0)
echo "
";
else
echo "
";
for ($j=0;$j{
if ($arr_data[$i]->$header[$j]!="")
echo " ".$arr_data[$i]->$header[$j]."
";
else
echo " ";
}
echo "
";
}
}
function showTable($arr_header,$arr_list,$face="BORDER=1")
{
echo "
";
showHeader($arr_header);
showList($arr_header,$arr_list);
echo "
";
}
?>
其中用戶需要調用的是showTable()函數。
參數$arr_header為表格頭部的標題行。比如一個用戶列表(UserName,Password,EmailAdd,Homepage),存
放在sql Server上,從數據庫裡用mssql_fetch_object()取出字段存放到一個數組$arr_list裡後,如果只
想顯示UserName,EmailAdd,HomePage三個字段,而不顯示Password字段。
$arr_header就可以這樣寫:
$arr_header = array("UserName"=>"用戶名","EmailAdd"=>"電子郵件","Homepage"=>"個人主頁");
然後調用showTable($arr_header,$arr_list;"Border=2");
就可以把列表顯示到網頁上了。為以下顯示:
用戶名 電子郵件 個人主頁
...... ........ ........
...... ........ ........
...... ........ ........
如果想在每個電子郵件上都加鏈接 就可以用一個循環在給EmailAdd一列的每一個都加上鏈接了。