官术网_书友最值得收藏!

第2章 PHP常用模塊設計

2.1 通訊錄模塊

本節我們先學習一個簡單的MySQL數據庫應用的例程,將使用數據庫存儲一個通訊錄。

2.1.1 創建數據庫

首先我們需要分析通訊錄的數據結構,通常來講,一個通訊錄需要保存聯系人的姓名、單位、地址、郵編、電話、手機、電子郵箱、QQ號碼、MSN號碼等,我們可以依次設計數據庫結構如表2-1所示。

表2-1 通訊錄數據結構

2.1.2 實現通訊錄

數據庫表我們已經設計完畢,接下來分析系統需求,我們應該實現至少四個頁面:通訊錄瀏覽頁、添加新的聯系人頁、修改聯系人資料頁和刪除聯系人頁。這四個頁面分別對應著數據庫的SELECT查詢、INSERT添加、UPDATE修改和DELETE刪除四個典型應用。其實PHP程序設計絕大部分工作都是組合成各種各樣的SQL語句到MySQL數據庫中去執行。

(1) 聯系人添加頁add.php

        <?php
            if($_POST['name'])
            {//有表單數據提交
                //MySQL服務器地址
                $host   = "localhost:3306";
                //MySQL用戶名
                $user   = "root";
                //MySQL密碼
                $pass   = "";
                //要使用的數據庫
                $dbname = "phpbook";
                //建立和數據庫的連接
                $id     = mysql_connect($host, $user, $pass);
                //使用GBK編碼
                mysql_query("set names gbk");
                //選擇數據庫
                mysql_select_db($dbname);
                //執行SQL查詢,讀出用戶表
                $sql    = "insert into addressbook (email, name, sex, birthday, unit,
        address, post, msn, qq, office_phone, home_phone, mobile_phone) values ('" .
        $_POST['email'] . "', '" . $_POST['name'] . "', '" . $_POST['sex'] . "', '" .
        $_POST['birthday'] . "', '" . $_POST['unit'] . "', '" . $_POST['address'] . "',
        '" . $_POST['post'] . "', '" . $_POST['msn'] . "', '" . $_POST['qq'] . "', '" .
        $_POST['office_phone']   .   "',   '"   .   $_POST['home_phone']   .   "',   '"   .
        $_POST['mobile_phone'] . "')";
                if($result  = mysql_query($sql))
                {
                                echo "聯系人:" .  $_POST['name'] . "已添加。";
                }
            }
            else
            {
        ?>
        <!DOCTYPE   html   PUBLIC   "-//W3C//DTD   XHTML   1.0   Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=gb18030" />
        <title>添加新聯系人</title>
        </head>
        <body>
        添加聯系人
        <form name="form" action="add.php" method="post">
        <table border="1" cellpadding="3" cellspacing="1">
        <tr><td>姓名</td><td><input type="text" name="name" size="60"></td></tr>
        <tr><td>   電   子   郵   件   </td><td><input    type="text"    name="email"
        size="60"></td></tr>
        <tr><td>性別</td><td><select name="sex"><option value="1">男</option><option
        value="2">女</option></select></td></tr>
        <tr><td>  出  生  日  期  </td><td><input    type="text"    name="birthday"
        size="60"></td></tr>
        <tr><td>單位</td><td><input type="text" name="unit" size="60"></td></tr>
        <tr><td>地址</td><td><input type="text" name="address" size="60"></td></tr>
        <tr><td>郵編</td><td><input type="text" name="post" size="60"></td></tr>
        <tr><td>MSN</td><td><input type="text" name="msn" size="60"></td></tr>
        <tr><td>QQ</td><td><input type="text" name="qq" size="60"></td></tr>
        <tr><td>  工  作  電  話  </td><td><input   type="text"   name="office_phone"
        size="60"></td></tr>
        <tr><td>  家  庭  電  話  </td><td><input   type="text"   name="home_phone"
        size="60"></td></tr>
        <tr><td>手機</td><td><input type="text" name="mobile_phone" size="60"></td></tr>
        <tr><td colspan="2" align="center"><input type="submit" name="ok" value="
        提交"> <input type="reset" name="cancel" value="重填"></td></tr>
        </table>
        </form>
        </body>
        </html>
        <?php
            }
        ?>

代碼運行如圖2-1和圖2-2所示。

圖2-1 聯系人添加表單頁

圖2-2 聯系人添加成功頁

(2) 聯系人修改頁edit.php

        <?php
            //MySQL服務器地址
            $host   = "localhost:3306";
            //MySQL用戶名
            $user   = "root";
            //MySQL密碼
            $pass   = "";
            //要使用的數據庫
            $dbname = "phpbook";
            //建立和數據庫的連接
            $id     = mysql_connect($host, $user, $pass);
            //使用GBK編碼
            mysql_query("set names gbk");
            //選擇數據庫
            mysql_select_db($dbname);
            if($_POST['user_id'])
            {//有表單數據提交
                //執行SQL查詢,讀出用戶表
                $sql    = "update addressbook set email='" . $_POST['email'] . "',
        name='"  .  $_POST['name']  .  "',  sex='"  .  $_POST['sex']  .  "',  birthday='"  .
        $_POST['birthday']  .  "',  unit='"  .  $_POST['unit']  .  "',  address='"  .
        $_POST['address'] . "', post='" . $_POST['post'] . "', msn='" . $_POST['msn'] .
        "', qq='" . $_POST['qq'] . "', office_phone='" . $_POST['office_phone'] . "',
        home_phone='"    .    $_POST['home_phone']    .    "',    mobile_phone='"    .
        $_POST['mobile_phone'] . "' where user_id='" . $_POST['user_id'] . "'";
                if($result  = mysql_query($sql))
                {
                                echo "聯系人:" .  $_POST['name'] . "已修改。";
                }
            }
            elseif($_GET['user_id'])
            {
                $sql    =   "select   *   from   addressbook   where   user_id='"   .
        $_GET['user_id'] . "'";
                $result = mysql_query($sql);
                if($result)
                {
                                $row    = mysql_fetch_array($result);
        ?>
        <!DOCTYPE   html   PUBLIC   "-//W3C//DTD   XHTML   1.0   Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=gb18030" />
        <title>修改聯系人資料</title>
        </head>
        <body>
        修改聯系人資料
        <form name="form" action="edit.php" method="post">
        <input name="user_id" type="hidden" value="<?php echo $row['user_id'];?>" />
        <table border="1" cellpadding="3" cellspacing="1">
        <tr><td>姓名</td><td><input type="text" name="name" size="60" value="<?php
        echo $row['name'];?>"></td></tr>
        <tr><td> 電 子 郵 件 </td><td><input  type="text"  name="email"  size="60"
        value="<?php echo $row['email'];?>"></td></tr>
        <tr><td>  性  別  </td><td><select   name="sex"><option   value="1"   <?php
        if($row['sex'] == 1){echo " selected";}?>>男</option><option value="2" <?php
        if($row['sex'] == 2){echo " selected";}?>>女</option></select></td></tr>
        <tr><td> 出 生 日 期 </td><td><input  type="text"  name="birthday"  size="60"
        value="<?php echo $row['birthday'];?>"></td></tr>
        <tr><td>單位</td><td><input type="text" name="unit" size="60" value="<?php
        echo $row['unit'];?>"></td></tr>
        <tr><td>  地  址  </td><td><input   type="text"   name="address"   size="60"
        value="<?php echo $row['address'];?>"></td></tr>
        <tr><td>郵編</td><td><input type="text" name="post" size="60" value="<?php
        echo $row['post'];?>"></td></tr>
        <tr><td>MSN</td><td><input  type="text"  name="msn"  size="60"  value="<?php
        echo $row['msn'];?>"></td></tr>
        <tr><td>QQ</td><td><input type="text" name="qq" size="60" value="<?php echo
        $row['qq'];?>"></td></tr>
        <tr><td>工作電話</td><td><input type="text" name="office_phone" size="60"
        value="<?php echo $row['office_phone'];?>"></td></tr>
        <tr><td>家庭電話</td><td><input  type="text"  name="home_phone"  size="60"
        value="<?php echo $row['home_phone'];?>"></td></tr>
        <tr><td> 手 機 </td><td><input  type="text"  name="mobile_phone"  size="60"
        value="<?php echo $row['mobile_phone'];?>"></td></tr>
        <tr><td colspan="2" align="center"><input type="submit" name="ok" value="
        提交"> <input type="reset" name="cancel" value="重填"></td></tr>
        </table>
        </form>
        </body>
        </html>
        <?php
                }
                else
                {
                                echo "該聯系人不存在。";
                }
            }
        ?>

修改聯系人的界面和添加新聯系人類似,修改成功保存后的界面如圖2-3和圖2-4所示。

圖2-3 聯系人資料修改

圖2-4 聯系人資料修改成功

(3) 聯系人刪除頁del.php

        <?php
            //MySQL服務器地址
            $host   = "localhost:3306";
            //MySQL用戶名
            $user   = "root";
            //MySQL密碼
            $pass   = "";
            //要使用的數據庫
            $dbname = "phpbook";
            //建立和數據庫的連接
            $id     = mysql_connect($host, $user, $pass);
            //使用GBK編碼
            mysql_query("set names gbk");
            //選擇數據庫
            mysql_select_db($dbname);
            if($_GET['user_id'])
            {//有表單數據提交
                //執行SQL查詢,刪除指定的聯系人
                $sql    =   "delete   from   addressbook   where   user_id='"   .
        $_GET['user_id'] . "'";
                if($result  = mysql_query($sql))
                {
                                echo "聯系人已刪除。";
                }
            }
        ?>

我們可以在聯系人列表頁單擊其中一個聯系人的“刪除”鏈接,刪除成功后會顯示如圖2-5所示。

圖2-5 聯系人成功刪除

(4) 聯系人列表頁list.php

        <?php
            //MySQL服務器地址
            $host   = "localhost:3306";
            //MySQL用戶名
            $user   = "root";
            //MySQL密碼
            $pass   = "";
            //要使用的數據庫
            $dbname = "phpbook";
            //建立和數據庫的連接
            $id     = mysql_connect($host, $user, $pass);
            //使用GBK編碼
            mysql_query("set names gbk");
            //選擇數據庫
            mysql_select_db($dbname);
            //執行SQL查詢,讀出用戶表
            $sql    = "select * from addressbook where user_id > 0 order by user_id";
            echo "通訊錄 <a href=add.php>添加新聯系人</a>";
            $result = mysql_query($sql);
            if($result)
            {//循環顯示每個聯系人資料
                echo "<table><tr><td>姓名</td><td>電子郵件</td><td>性別</td><td>出生日
        期</td><td>單位</td><td>地址</td><td>郵編</td><td>MSN</td><td>QQ</td><td>工作電話
        </td><td>家庭電話</td><td>手機</td><td>操作</td></tr>";
                while($row = mysql_fetch_array($result))
                {
                                echo "<tr><td>" . $row['name'] . "</td><td>" . $row['email'] .
        "</td><td>" . ($row['sex'] == 1 ? "男" : ($row['sex'] == 2 ? "女" : "")) .
        "</td><td>" . $row['birthday'] . "</td><td>" . $row['unit'] . "</td><td>" .
        $row['address']  .  "</td><td>"  .  $row['post']  .  "</td><td>"  .  $row['msn']  .
        "</td><td>" . $row['qq'] . "</td><td>" . $row['office_phone'] . "</td><td>" .
        $row['home_phone']  .  "</td><td>"  .  $row['mobile_phone']  .  "</td><td><a
        href='edit.php?user_id="    .    $row['user_id']    .    "'>   編   輯   </a>    <a
        href='del.php?user_id=" . $row['user_id'] . "'>刪除</a></td></tr>";
                }
                echo "</table>";
            }
            else
            {//沒有有效記錄
                echo "<p>通訊錄內還沒有聯系人!</p>";
            }
        ?>

列表程序運行界面如圖2-6和圖2-7所示。

圖2-6 還沒有添加聯系人時的界面

圖2-7 添加聯系人后的界面

主站蜘蛛池模板: 贵阳市| 油尖旺区| 霍城县| 西乡县| 仲巴县| 呼图壁县| 嵊泗县| 塘沽区| 尉犁县| 来宾市| 五家渠市| 河间市| 合山市| 和林格尔县| 南汇区| 鹿泉市| 安西县| 灵台县| 云阳县| 綦江县| 会昌县| 江门市| 龙游县| 邵武市| 内丘县| 包头市| 岳池县| 赤峰市| 平原县| 徐汇区| 渝北区| 五家渠市| 长子县| 太仆寺旗| 江达县| 刚察县| 家居| 通河县| 莱州市| 鄢陵县| 商河县|