วันศุกร์ที่ 20 พฤษภาคม พ.ศ. 2554

เริ่มเขียน CodeIgniter Framework บทที่ 3 : Models ต่อ ฐานข้อมูล

ก่อนอื่นต้องเข้าไป set ci22\application\config\database.php ก่อนนะครับ

$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'ci22';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
ก็ set ตามของเราได้เลยครับ ผม เราสามารถ สร้าง group เพิ่มได้อีกด้วยนะครับ เอาไว้เพื่อสร้างหลายๆ งานใน ci ตัวเดียว หรือ หลาย server กันครับ แต่ผมขอ server เดียวแล้วกันนะครับ ต่อไปมาดูวิธีเรียกใช้กันเลย ครับ ดูในส่วน C ก่อนนะครับ ที่ main.php ก่อนจะใช้ได้ต้องประกาศก่อนะครับ
$this->load->model('ชื่อmodels');
แค่นี้เองครับ ต่อไปเราก็ ไปสร้าง models ก่อนนะครับ ที่ ci22\application\models ผมสร้าง user_models.php ไว้นะครับ ด้านในก็ ใส่ตามนี้นะครับ เป็นพื้นฐานเลยก็ว่าได้ครับ

<?php class User_models extends CI_Model {
    function __construct()
    {
parent::__construct();
$this->load->database();
    }
}

จากข้างต้น นี้เราโหลด database ที่เรา set ไว้นั้นแหละครับ ต่อไปเรามา สร้าง function เพิ่มกันครับ

function get_last_ten_entries()
    {
        $query = $this->db->get('entries', 10);
        return $query->result();
    }
    function insert_entry()
    {
        $this->title   = $_POST['title']; // please read the below note
        $this->content = $_POST['content'];
        $this->date    = time();
        $this->db->insert('entries', $this);
    }
    function update_entry()
    {
        $this->title   = $_POST['title'];
        $this->content = $_POST['content'];
        $this->date    = time();
        $this->db->update('entries', $this, array('id' => $_POST['id']));
    }

 อันนี้ผมเอามาจากตัวอย่างของ ci นะครับ ก็ประมาณ นี้อ่าครับผมขอไม่ทำให้ดูนะครับ เป็นแค่แนวทางเฉยๆๆ นะครับ select ค่าที่คื้นไปจะเป็น array นะครับ ก็เอาไปทำอะไรๆ ต่อที่ C ได้เลยครับ
*tip&tack รูปแบบ array ที่ได้จะเป็น

Array(
    [0] => stdClass Object
        (
            [id] => 1
            [title] => iPhone 4
            [details] =>?????????????????
            [ori_price] => 26500
            [sale_price] => 23500
            [url_img] => 0011.jpg
            [url_details] =>
            [date_in] => 1304220306
            [status] => 1
        )
 )
จะเป็น stdClass Object วิธีเรียกใช้ก็ จะเป็น (ในนี้ db คนล่ะตัวกันนะครับ ลองประยุกดูคับ)
$data['result']=$this->user_models->get_all_item();
echo$data['result'][0]->title;
แค่ี้นี้เองครับ แต่ มี tick นะครับ เอาไปแปลงเป็น array ก่อนก็ได้ นะครับ อยู่ในบทความ คลิก
ปล.เริ่มไม่รู้จะเขียนอะไรแล้ว อิอิ คือคนรู้เรื่องกันคนไม่รู้เรื่องมันผิดกันเนอะเมื่อก่อนเราไม่รู้เรื่องเราก็หาวิธีโน้นวิธีนี้เพื่อจะทำให้ได้แต่พอเรารู้เรื่องเราก็ไม่รู้จะเขียนอะไรให้คนไม่รู้ได้อยู่อย่างเรา

1 ความคิดเห็น:

  1. ขอบคุณครับ อยากให้เขียน CodeIgniter เยอะ ๆ ครับ
    bookmark ไว้ติดตามอ่านแล้ว

    ตัวหนังสือขาว บนพื้นดำ ดูนาน ๆ แล้วปวดตาจัง

    ตอบลบ