<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                本章讓我們使用sp框架來制作一個簡單的留言本程序,在實例中學習程序開發是非常有效的。同時,我們也可以體會一下實際網絡項目的開發流程。 ![](http://www.speedphp.com/static/image/filetype/rar.gif)?[guestbook4-5[1].rar](http://www.speedphp.com/forum.php?mod=attachment&aid=NzA5fDdkOGFmMDhjfDE0NDUyNDI3MjN8NjMwOXwzNzE4)?(1.92 KB, 下載次數: 1854)? 首先我們來看看,留言本的需求,也就是我們的程序將要實現什么功能: * 訪問者可以查看留言首頁(也就是留言列表)。 * 訪問者可以查看單一條留言的詳細內容。 * 訪問者可以進行留言。 請注意,我們的“需求”都是以訪問者為中心的。但同時我們還可以以訪問者和管理員為中心,只是本章介紹的留言本還暫時沒有加入管理功能。 為了簡單起見,我們并沒有加入管理功能的需求。我們再來想想,在上面三個過程中所涉及的數據有哪些?對,僅是留言信息。那么我們大致考慮,留言信息會包括:留言標題,留言內容,留言者名字。另外,我們留言的信息還需要包括一個唯一的標志,以區分每一條留言。好了,那么我們就可以得出,留言本程序的數據表僅有一個“留言表”(起個英文名叫guestbook),它的大致結構是: * 留言標題,字符串(也就是中英文)形式,大概不會多于50字。用title做數據表的字段名稱。 * 留言內容,字符串,也不會多于200字吧,用contents做字段名。 * 留言者名字,字符串,大概在20個字以內,用name做字段名。 * 唯一標志,一般用數字形式的ID。用id做字段名。 按以上的說明,我們可以得出以下的數據表結構。 ~~~ CREATE TABLE `guestbook` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(50) , `contents` varchar(200) , `name` varchar(20) , PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; ~~~ > 對于數據庫知識,我們提倡的是按需學習,也就是用到哪些就學哪些,畢竟“書上講得深奧,實際沒有用到”,那就是費力不討好。并且,在實際工作中,PHP程序員所需要的,也僅僅是一小部分的數據庫知識,萬一遇到更復雜的數據庫需求我們也有非常多的解決途徑,比如同事之間討論,SpeedPHP論壇求助,找GOOGLE大神等等。所以除非是很有必要(比如工作是程序員兼數據庫管理員DBA的人員),不然數據庫知識方面,我們也是淺嘗輒止即可。 > 初學PHP,我們建議可以了解一下以下的數據庫知識就足夠,不需要給自己太多的學習壓力。 > 在類似PhpMyAdmin的數據庫管理工具中,如何建表。 > CREATE,UPDATE,DELETE,SELECT四個語言的簡單用法。 > 懂得思考和想方法解決遇到的問題。 > 使用數據庫管理工具而不用純粹SQL語句和命令行并沒有什么荒廢知識的問題,畢竟那會更簡單快捷并且避免許多問題,這是提高開發效率的必然選擇。 在PhpMyAdmin中建好了guestbook表 ![](https://box.kancloud.cn/2015-10-19_5624acab3c60c.jpg) 然后,我們可以在index.php中對程序進行數據庫的配置: ~~~ <?php // sp框架的目錄,SpeedPHP.php文件所在的目錄 define("SP_PATH", dirname(__FILE__) . "/SpeedPHP"); // 應用程序目錄,controller和model等文件夾所在的目錄,這里設置的是根目錄 define("APP_PATH", dirname(__FILE__)); // 這里開始是應用程序的配置 $spConfig = array( "db" => array( // 數據庫設置 'host' => 'localhost', // 數據庫地址,一般都可以是localhost 'login' => 'root', // 數據庫用戶名 'password' => '123456', // 數據庫密碼 'database' => 'test' // 數據庫的庫名稱 ) ); require(SP_PATH . "/SpeedPHP.php"); spRun(); // SpeedPHP 3新特性 ?> ~~~ > 請注意index.php的目錄位置,這是我們應用程序的入口文件,同時也是配置文件。 上面提到訪問者進行的三個動作:看留言本首頁,看留言內容,留言。好的,那么我們的main.php,就可以是下面的樣子了: ~~~ <?php class main extends spController { function index() // 這里是首頁 { } function show() // 這里是查看留言內容 { } function write() // 這里是留言 { } } ?> ~~~ 將main.php放到controller目錄里面后,我們建立一個guestbook.php放到model目錄里面,那是鏈接數據庫所要做的。guestbook.php的代碼很簡單: ~~~ <?php class guestbook extends spModel { var $pk = "id"; // 每個留言唯一的標志,可以稱為主鍵 var $table = "guestbook"; // 數據表的名稱 } ?> ~~~ > 請注意,全部PHP文件都需要是UTF8編碼,用PHP編輯器另存為就可以做到。 上面準備的程序,就可以說系統架構。 準備好了這些程序后,我們可以寫代碼了,main.php的代碼如下: ~~~ <?php class main extends spController { function index() // 這里是首頁 { $posturl = spUrl("main", "write"); // 用spUrl制造寫留言的地址 echo "<p align=center><h2>我的留言本</h2></p>"; // 下面做一個表單來提交留言,請注意這些輸入框的name屬性,它們都對應了數據表guestbook的字段名! echo "<p>請寫下您的留言:</p><form action={$posturl} method=POST><p>您的名字:<input type=text name=name></p><p>留言標題:<input type=text name=title></p><p>留言內容:<textarea name=contents></textarea></p><p><input type=submit value=提交></p></form>"; $guestbook = spClass("guestbook"); // 用spClass來初始化留言本數據表對象(模型類對象) if ($result = $guestbook->findAll()) { // 用findAll將全部的留言查出來 foreach ($result as $value) { // 循環輸出留言信息 $contentsurl = spUrl("main", "show", array( 'id' => $value['id'] )); // 用spUrl制造查看留言內容頁面地址,請注意array('id'=>$value['id'])將傳遞ID到查看頁面,由spArgs來接收。 echo "<p>這里是第{$value['id']}條留言:<a href={$contentsurl} target=_blank>{$value['title']}</a> {$value['name']}</p>"; } } } function show() // 這里是查看留言內容 { $id = $this->spArgs("id"); // 用spArgs接收spUrl傳過來的ID $guestbook = spClass("guestbook"); // 還是用spClass $condition = array( 'id' => $id ); // 制造查找條件,這里是使用ID來查找屬于ID的那條留言記錄 $result = $guestbook->find($condition); // 這次是用find來查找,我們把$condition(條件)放了進去 // 下面輸出了該條留言內容 echo "<p>留言標題:{$result['title']}</p>"; echo "<p>留言者:{$result['name']}</p>"; echo "<p>留言內容:{$result['contents']}</p>"; } function write() // 這里是留言 { $guestbook = spClass("guestbook"); $guestbook->create($this->spArgs()); // 這里用$this->spArgs()取得了表單的全部內容,然后增加了一條留言記錄 echo "留言成功,<a href=/index.php>返回</a>"; } } ?> ~~~ 好了,我們可以先將上面代碼復制到我們的main.php里面,運行一下試試吧。 ![](https://box.kancloud.cn/2015-10-19_5624acab4c31b.jpg) 上面的main.php我們在注釋內也能基本了解程序的寫法,在接下來的第五章里面,我們著重以留言本程序來介紹sp框架的數據庫操作。同時,都是用echo來輸出頁面,看起來有些亂,所以第六章我們將改寫這個留言本程序,把它變成用Smarty來輸出的程序。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看