2014年4月25日 星期五

PHP CI框架(CodeIgniter)Mysql資料庫查詢篇

2014/04/26 文章發布
2014/05/05 新增延伸筆記

在這篇呢要開始教大家如何從資料庫抓出資料來
以及如何下條件以及一些注意要點
要用範例簡單的示範怎麼使用CI讀取資料庫
資料庫設定請參考這篇文章
此篇的延伸筆記建議看過此文章後再閱讀效果會比較好

先來建立一個簡單的資料庫
資料庫內容如下
建立一個名叫"php"的資料庫(請原諒我隨便命名)
裡面新增一個資料表叫做"name"
裡面有兩個欄位叫"name"以及"ps"(應該為"password",請再次原諒我隨便命名)
隨便命名真的是工程師的大忌
請大家不要學我,我懶得改範例了

裡面的資料就隨便給吧
我給一下我這邊的範例資料
裡面有四筆資料

接下來就來改CI的資料庫設定了
請參考上面連結的文章依需求設定喔
在這邊當然也要寫一下這邊的範例
進入application\config\database.php修改成以下內容
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '123456';
$db['default']['database'] = 'php';
其他欄位都是預設

接下來就是重頭戲了!!
先來建立application\models\getsqlmod.php
<?php
class getsqlmod extends CI_Model {
    function __construct() { // 建構值
        parent::__construct (); // 改寫父親
        {
            $this->load->database (); // 載入database資料庫設定
        }
    }
    function getdata() { // getdata副程式
        $query = $this->db->get ( 'name' ); // 抓取資料庫指令
        return $query; // 回傳抓取到的資料庫資料
    }
}

接下來建立application\controllers\getdata.php
<?php
if (! defined ( 'BASEPATH' ))
    exit ( 'No direct script access allowed' );
class getdata extends CI_Controller {
    public function index() {
        $this->load->model ( 'getsqlmod' ); // 載入model
        $query = $this->getsqlmod->getdata ()->result_array (); // 使用getsqlmod裡的getdata功能
        $data = array ( // 存入列陣
                'data' => $query 
        );
        $this->load->view ( 'getsqltest', $data ); // 載入視界並且把資料$data丟進去
    }
}

建立視界application\views\getsqltest.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>讀取資料庫範例</title>
</head>
<body>
    <table style="text-align: left; width: 100px;" border="1"
        cellpadding="2" cellspacing="2">
        <tbody>
            <tr>
                <td style="vertical-align: top;">帳號</td>
                <td style="vertical-align: top;">密碼</td>
            </tr>
            <?php
            foreach ( $data as $l1 ) {
                echo "<tr>";
                foreach ( $l1 as $l2 ) {
                    echo "<td>" . $l2 . "</td>";
                }
                echo "</tr>";
            }
            ?>
        </tbody>
    </table>
</body>
</html>

網頁我用表格去包印出的資料內容
呈現效果如下
資料庫的資料通通抓出來囉~~~

沒有留言:

張貼留言