PHP 入門指南 - 完成版的 Encode Software

首先,我們要建立資料庫 (database) 連線,這要在 encryptor_function.php 加入連線的變數 (variable)
$link = @mysql_connect("localhost", "encryptdata", "0000") or die("mysql worng - ".mysql_error());



完整程式檔案請參考 encryptor_function.php


內建函數 (function) mysql_connect() 用來跟 MySQL 資料庫連線,共需要三個參數 (parameter) ,第一個參數為伺服器種類,第二個參數為使用者帳號,第三個參數則是使用者密碼。後面的 or 為關鍵字 (keyword) 之一,此為邏輯運算子進行「或」運算,因此如果 mysql_connect() 得到 false ,也就是無法登錄 MySQL 資料庫就會執行其後的部份。


die() 用為顯示錯誤訊息,至於 mysql_error() 則會回傳 MySQL 資料庫出錯的地方。


由於 $link 亦為全域變數 (global variable) ,因此有用到 global 的函數如 new_button() 、 load_button() 、 encode_button() 、 decode_button() 、 clean_button() 都要加入 $link ,例如 new_button() 這一行就要改成
global $e, $data, $link;


因為執行這五個函數也都要寫進資料庫中,因此 new_button() 要加進
$sql = "insert into resord (action, code, input, output) values('new', '{$s}', '', '')";
mysql_db_query("encrypt_software", $sql, $link) or die("mysql wrong").mysql_error();


變數 $sql 為 SQL 語法字串 (string) ,我們可以看到語法就是
insert into resord (action, code, input, output) values('new', '{$s}', '', '')


insert into 後面接資料表 (data table) 名稱 resord ,再後面用小括弧圍起來的是欄位,除了 sn 之外,我們其他四個欄位都有寫值進去,寫進去的值就是字串,其中 code 部份是用大括弧圍起來的變數 $s 。


下一行, mysql_db_query() 連結資料庫處理資料的函數,共需三個參數,第一個參數為資料庫名稱,第二個參數為 SQL 語法,第三個參數則是連線的變數 $link 。


其他四個函數 load_button() 、 encode_button() 、 decode_button() 、 clean_button() 也雷同,請直接參考 encryptor_function.php


寫入資料庫的部份加進去之後,我們接著要完成 record() 與 about() 兩個函數。 record() 的設計如下
function record() {
    global $link;
    $sql = "select * from resord";
    $result = mysql_db_query("encrypt_software", $sql, $link) or die("mysql wrong").mysql_error();
    $temp = "<h3>Record:</h3><br / >";
    $temp = $temp."sn-action-input-output<br / >";
    while ($data = mysql_fetch_array($result)) {
        $temp = $temp.$data['sn']."-".$data['action']."-".$data['input']."-".$data['output']."<br / >";
    }
    return $temp;
}


因為 record() 是要從資料庫中擷取資料,然後把資料顯示在 $main 裡,所以用的 SQL 語法為 select
$sql = "select * from resord";


星號 * 表示所有的欄位, from 後面接資料表名稱。這裡同樣用 mysql_db_query() 處理資料,不過這次是回傳資料庫資料到變數 $result 之中,下面的 $temp 為建立顯示資料的字串,最後也是回傳 $temp ,留意這一行
$temp = $temp."sn-action-input-output<br / >";


由於 $temp 是字串,因此這一行是 $temp 連接新的字串後,再把值傳回 $temp ,其實也可以直接用 .= 運算子。


底下的 while 迴圈 (loop) 逐次處理由資料表 resord 取出的資料,內建函數 mysql_fetch_array() 會依順序將資料取出來放到陣列中。


至於 about() 就回傳版權資料字串,如下
function about() {
    $temp = "《程式語言教學誌》的範例程式<br / >
    <a href='http://pydoing.blogspot.com/'>http://pydoing.blogspot.com/</a><br / >
    名稱:Encrypt Software<br / >
    功能:示範 PHP 程式<br / > 
    作者:張凱慶<br / >
    時間:西元 2012 年 11 月 */";
    return $temp;
}


來跑跑看囉! Record



About



好了,網站大抵完成了,下一步是?


中英文術語對照
資料庫database
變數variable
函數function
參數parameter
關鍵字keyword
全域變數global variable
字串string
資料表data table
迴圈loop


您可以繼續參考
資料庫篇


相關目錄
回 PHP 入門指南
回 PHP 教材
回首頁


參考資料
http://www.phpmyadmin.net/home_page/index.php
http://dev.mysql.com/doc/refman/5.5/en/tutorial.html
http://php.net/manual/en/function.die.php
http://php.net/manual/en/function.mysql-connect.php
http://php.net/manual/en/function.mysql-db-query.php
http://php.net/manual/en/function.mysql-error.php
http://php.net/manual/en/function.mysql-fetch-array.php

沒有留言: