คลังเก็บป้ายกำกับ: codeigniter

เปลี่ยนที่อยู่ของ views folder ของ Codeigniter ที่ไหน

วันก่อนต้องเขียน Codeigniter ร่วมกับเพื่อน มี Case ของต้องวาง Folder view ไว้ให้คนอื่นหาง่ายๆ เลยต้องหาทางย้ายจากที่อยู่ดั้งเดิมของมัน เลยเกิดคำถามขึ้นว่า ถ้าต้องการเปลี่ยนที่อยู่ของ Folder views ของ Codeigniter ซึ่งติดตั้งครั้งแรกจะอยู่ที่ /system/application/views จะต้องทำยังไงบ้าง

วิธีทำก็คือ
เข้าไปที่ copy file system/libraries/Loader.php ไปที่ system/application/libraries/Loader.php หาอันนี้

$this->_ci_view_path = APPPATH.’views/’;

$this->_ci_view_path = ‘my_views/’;

ซึ่งจะเริ่มต้นที่ root application path ของ เรา

แค่นี้ก็เรียบร้อย

Codeigniter Activerecord กับ MSSQL แล้ว Error

เริ่มเอา Codeigniter ที่เป็น PHP Framework มาใช้งาน เนื่องจาก Learning Curve ต่ำๆ ของมัน ทำให้พอถูๆไถๆ ไปกับเค้าได้ แต่ผมว่ามันไม่ค่อย Smooth กับ MSSQL เอาเสียเลย เพราะ แม้ว่า Version ล่าสุดจะออกมาแล้วก็ตามยังไม่สามารถแก้ปัญหา การใช้ ActiveRecord กับ MSSQL ในการ Select ข้อมูลได้เลย สำหรับคนที่ีมีปัญหาเหมือนกัน ผมไปค้นเจอที่ Forum เลยเอามา Post ไ้ว้ จากที่นี่

$this->obj->db->select($filed_result);
$this>obj>db>where($filed_get,$keyword);
$query = $this>obj->db->get($table_get);

ถ้า Select แบบนี้ละก็ Error อย่างไม่ทราบสาเหตุทันที ทั้งๆ ที่ Query ถูก ให้ไปแก้ไข database/drivers/mssql/mssql_driver.php บรรทัดที่ 461 จาก

$item = preg_replace('/(^'.$lbound.')([wd-_]+?)(s|)|$)/iS', '$1"$2"$3', $item);

เป็น

$item = preg_replace('/(^'.$lbound.')([wd-_]+?)(s|)|$)/iS', '$1$2$3', $item);

บรรทัดที่ 466 จาก

return ""{$item}"";

เป็น

return "{$item}";

ก็จะสามารถใช้งาน Activerecord ใน mssql ได้ครับ

ใช้ Pagination ใน Codeigniter กับ MSSQL

ใช้ Pagination ใน Codeigniter กับ ฐานข้อมูล Microsoft SQL (MSSQL)

คือผมได้มีโอกาศลองใช้ Codeigniter กับ การเขียน โปรแกรมเรียกดูข้อมูลง่ายๆ จาก MSSQL แต่ติดปัญหาเรื่องการแบ่งหน้าด้วย Pagination ลองค้นๆ ดูใน Forum เค้าให้ไปแก้ไฟล์

systemdatabasedriversmssqlmssql_driver.php

ตรงบรรทัด function _limit($sql, $limit, $offset) ให้เป็นแบบนี้

function _limit($sql, $limit, $offset)
{
// Horrible solucion =)
//$i = $limit + $offset;
//return preg_replace(‘/(^SELECT (DISTINCT)?)/i’,’\1 TOP ‘.$i.’ ‘, $sql);
$cursorName = ‘mi_cursor_’.md5(strtolower($sql));
$sql = “DECLARE “.$cursorName.” CURSOR DYNAMIC READ_ONLY FOR
“.$sql.”
OPEN “.$cursorName.”
DECLARE @CURSOR AS INT
SELECT @CURSOR = CURSOR_HANDLE FROM MASTER.DBO.SYSCURSORS
WHERE CURSOR_NAME = ‘”.$cursorName.”‘
EXEC SP_CURSORFETCH @CURSOR, 32, “.($offset+1).”, “.$limit.”
EXEC SP_CURSORCLOSE @CURSOR”;
return $sql;
}

ก็จะหายครับ