羅德興老師的教學歷程檔案 - 108-2 資料庫管理系統 - Unit 2-MySQL-TEXT-PHP-新增-查詢
 

企業資訊與管理系
助理教授/日導
羅德興


歷程檔案 Portfolio

    Unit 2-MySQL-TEXT-PHP-新增-查詢

    Unit 2-MySQL-TEXT-PHP-新增-查詢

    壹、建立 www/mydb來存放所有的開發文件
     
    貳、建立 www/mydb/text.sql 儲存建立資料庫與表的命令
     
    DROP DATABASE IF EXISTS mydb; 
    CREATE DATABASE mydb DEFAULT CHARACTER SET utf8; 
    USE mydb;  
    CREATE TABLE stmd (
      depart_class   CHAR(6)     COMMENT  '班級代碼',
      student_no     CHAR(9)     COMMENT  '學號',
      student_name   VARCHAR(20) COMMENT  '姓名',
      address        VARCHAR(60) COMMENT  '地址',
      primary key(student_no)
    );
     
    參、建立 www/mydb/style.css
     
    <style type='text/css'>
       body { width:100%; margin:0 padding:0; font-family:標楷體; }
       table { border-collapse:collapse; border:1px solid black;
               empty-cells:show; width:100%; }
       th { background-color:ccffff; border: 1px solid; font-family:標楷體;}
       td { border: 1px solid; text-align : center; font-family:標楷體; }
       .alt0 { background-color:#99ffff; font-weight:bold; font-family:標楷體; }
       .alt1 { background-color:#ccccff; font-family:標楷體; }
       .alt2 { background-color:#ccffff; font-family:標楷體; }
       .alt3 { background-color:#fff8c6; font-family:標楷體; }
     
       a: { background:ccccff; border:1px solid ccc; color:000;
           padding:.3em .5em;  margin-top:1px;  margin-bottom:1px; text-align:center;
           text-decoration:none; display: inline-block; font-family:標楷體; }
       a:link {background-color:ff88ee } 
       a:visited {background-color:FFFF85;}
       a:hover {background-color:FF704D; }  
       a:active {background-color:FF704D; } 
       p {background-color: #81F781; display:inline;font-family:標楷體; font-weight:bold;}  
       .cmd  {font-family:標楷體; font-size:18px; background-color:ccccff; width:4em; } 
       .cmd1 {font-family:標楷體; font-size:18px; background-color:ccccff; width:10em; } 
       .cmd2 {font-family:標楷體; font-size:18px; background-color:ccccff; width:5em; } 
     </style>
     
    肆、建立 www/mydb/config.php
     
    <?php
      $host = "127.0.0.1";
      $user = "root";
      $pwd = "1234";
      $dbname="mydb";
      $conn=mysqli_connect($host,$user,$pwd) or die("無法連接主機");
      mysqli_query($conn,'SET NAMES utf8'); 
      mysqli_select_db($conn,$dbname) or die("無法連接資料庫");
    ?>
     
    伍、建立PHP程式 www/mydb/text.php
     
    <?php
     
      include "config.php"; // 連線組態
      if (isset($_POST["command"])) $command=$_POST["command"];
      else $command="";
      if ($command=="") {
        display_first_page($conn);
      }
      elseif ($command=="新增") {
        display_insert_page($conn);
        display_first_page($conn);
      }
      elseif ($command=="查詢") {
        display_search_page($conn);
      }
      mysqli_close($conn);
     
      function display_first_page($conn) { // 第一個頁面
        echo "<html><head><title>MySql與PHP結合-TEXT-新增-查詢-範例</title>
              <link rel='stylesheet' type='text/css' href='style.css'>
              </head><body><center>
              <table> <form method='post' action=''>
              <tr class='alt0'><td colspan=2>MySql與PHP結合-TEXT-新增-查詢-範例</td></tr>
              <tr><td class='alt1'>學號</td>
              <td><input type='text' name='student_no' /></td></tr></table>
              <input class='cmd' type='submit' name='command' value='查詢'>
              <input class='cmd' type='submit' name='command' value='新增'>
              </form></center></body></html>";
      }
     
      function display_search_page($conn) {
        $student_no=trim($_POST["student_no"]); // 取得輸入的學號,移除前後空白
        if ($student_no=="") $student_no="%";   // 查詢全部
        else $student_no="%".$student_no."%";   // 查詢匹配的學號
        $sql="select * from stmd where student_no like '$student_no' order by student_no";
        $result=mysqli_query($conn,$sql);
        echo "<html><head><title>MySql與PHP結合-TEXT-新增-查詢-範例</title>
              <link rel='stylesheet' type='text/css' href='style.css'>
              </head><body><center>
              <table>
              <tr class='alt0'><td colspan=5>MySql與PHP結合-TEXT-新增-查詢-範例</td></tr>
              <tr class='alt1'><td>學號</td></tr>";
        $cnt=0;
        while ($myrow=mysqli_fetch_array($result)) { 
          $student_no=$myrow["student_no"];    
          $bgcolor=$cnt % 2+ 2;
          echo "<tr class='alt$bgcolor'><td>$student_no</td></tr>";
          $cnt++;
        }
        echo "</table></center></body></html>"; 
      }
     
      function display_insert_page($conn) {
        $student_no=$_POST["student_no"];
        if ($student_no=="") {
          display_first_page($conn); exit();
        }
        $sql="insert into stmd values('','$student_no','','')";
        mysqli_query($conn,$sql);                    
      }
     
    ?>
     
    陸、作業
    一、
    擴充text.php程式,增加另外三個欄位 '班級代碼', '姓名', '地址',
     
    二、.
    參考前述的 壹 到  伍  改寫程式

    1. 壹、建立 www/mydb2來存放所有的開發文件
    2. 將前述的 貳 改用以下資料庫 

    DROP DATABASE IF EXISTS test_xxx;  -- 刪除資料庫
    CREATE DATABASE `test_xxx` CHARACTER SET utf8; -- 建立資料庫 採 utf8 編碼
    -- 新增 table
     
    USE test_xxx;
    -- 利用 AUTO_INCREMENT 自動累加,給該筆記錄一個獨一無二的編號,
    -- 像是給它一個ID,或是一個Index等等,自動從一開始設定的值 (預設是1) 一直累加上去。 
     
    CREATE TABLE supplier_xxx (
        s_id int NOT NULL AUTO_INCREMENT,
        s_name char(100),
        address char(120) NOT NULL,
        PRIMARY KEY (s_id)
    ) CHARACTER SET=utf8, ENGINE=INNODB; 
     
    CREATE TABLE product_xxx (
        p_id char(10) NOT NULL,
        name char(50),
        cost int NOT NULL,
        PRIMARY KEY (p_id)
    ) CHARACTER SET=utf8, ENGINE=INNODB; 
     
    CREATE TABLE ordering_xxx (
        s int NOT NULL,
        p char(10) NOT NULL,
        qty int,
        PRIMARY KEY (s,p),
     
       CONSTRAINT sp_fk2
            FOREIGN KEY (s) REFERENCES supplier_xxx(s_id)
            ON DELETE NO ACTION
            ON UPDATE CASCADE,
     
       CONSTRAINT sp_fk3
            FOREIGN KEY (p) REFERENCES product_xxx(p_id)
            ON DELETE NO ACTION
            ON UPDATE CASCADE
     
     ) CHARACTER SET=utf8, ENGINE=INNODB; 
    -- type=innodb 相當於 engine=innodb

    3. 沿用  參、建立 www/mydb/style.css
    4. 改寫 肆 的 config.php 程式
    5-1. 改寫 伍的 text.php 程式,將欄位改為 product_xxx  的 p_id,  name, cost 等三個欄位 (商品編號、品名、價格)
    5-2. 改寫 伍的 text.php 程式,將欄位改為 supplier_xxx 的 s_id, s_name, addresst 等三個欄位 (s_id 為自動編號不需輸入,廠商名稱、廠商地址)
    5-3. 改寫 伍的 text.php 程式,將欄位改為 ordering_xxx 的 s, p, qty 三個欄位 (廠商名稱 和 商品編號 s, p 亦可 使用 SELECT 自動帶出,訂購數量)

    全部共 0則留言
    登入帳號密碼代表遵守學術網路規範


    文章分類 Labels


    最新文章 Top10

    中華科技大學數位化學習歷程 - 意見反應