2013年5月4日 星期六

PHP 取得mysql資料庫中的資料



前置作業:
1.新增 db_mysql.ini.php 檔案
   新增 test_db.php 檔案
2.需要有mysql資料庫,並新增一個資料表,如下:




P.S上圖為測試資料,如有冒犯請告知...

程式碼:(解釋都在註解裡)
 db_mysql.ini.php:

<?php
  /**
  Step 1.mysql_connect(伺服器位置,帳號,密碼) 連線資料庫伺服器
  因資料庫在自己的電腦裡而mysql資料庫使用的port是3306,所以伺服器位置值接填入localhost:3306
  */
  if (! mysql_connect('localhost:3306','root','root')){
    //die中斷程式執行
    die('無法連線資料庫伺服器');
  }
  //Step 2.設定連線編碼為UTF8,如果您的資料庫字元集不是UTF8請自行更改
  mysql_query('SET NAMES utf8');
  //Step 3.選擇資料庫
  if (!@mysql_select_db('itn')){
    die('無法使用資料庫');
  }
  echo 'DB inc End...<br />開始準備輸出資料....<br />';
?>

test_db.php:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>取得mysql資料庫中的資料</title>
</head>
<body>
<?php
  //Step 1.引用db_mysql.inc.php檔,當引用後會去執行db_mysql.inc.php檔中所有程式碼
  include('db_mysql.inc.php');
  //執行sql指令,如查詢資料表
  $result=mysql_query('select * from users'); //執行sql指令;
  $row_total=mysql_num_rows($result);//取得資料表資料列數
  $fields=mysql_num_fields($result);//取得資料表欄位數

  //取資料表欄位名稱
  for ($x=0;$x<($fields);$x++){
    $meta=mysql_fetch_field($result);//取得欄位資訊,使用mysql_fetch_field函數目的要取得資料表欄位名稱
    $fields_name[$x]=$meta->name; //將欄位名稱儲存到$fields_name陣列
  }
  echo "<br/>筆數=$row_total;欄位數=$fields<br />";

  //先將資料存入二維資料表
  for ($y=0;$y<($row_total);$y++){
    $row=mysql_fetch_array($result);
    $db_data[$y]=$row;
  }

  //輸出資料
  echo '<table border="1">';
  for ($y=-1;$y<($row_total);$y++){
    echo '<tr>';
    for ($x=0;$x<($fields);$x++){
 //假如y等於-1就先輸出資料表欄位名稱
 if ($y==-1){
   echo '<td align="center">'.$fields_name[$x].'</td>';
 }else{
   echo '<td align="center">'.$db_data[$y][$x].'</td>';
 }
}
echo '</tr>';
  }
  echo '</table>';
?>
</body>
</html>

輸出結果: