Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > CodeIgniter โหลด database แล้วไม่เกิดอะไรขึ้นครับ ช่วยดูให้หน่อยครับ



 

CodeIgniter โหลด database แล้วไม่เกิดอะไรขึ้นครับ ช่วยดูให้หน่อยครับ

 



Topic : 060684



โพสกระทู้ ( 8 )
บทความ ( 0 )



สถานะออฟไลน์




CodeIgniter error

ตามรูปนะครับ
รูปบน $autoload['libraries'] = array(); แล้วพอผมใส่ $autoload['libraries'] = array('database'); มันได้เป็นรูปล่างครับ ไม่ขึ้นอะไรเลย ผมก็ลองแบบ $this->load->database(); แล้วเช่นกัน ก็ไม่มีอะไรเกิดขึ้นเช่นกันครับ ผมหาอยู่นานแล้วแต่ก็ไม่เจอครับว่าเพราะอะไร

ในส่วน model ที่ผมเรียกใช้ database แบบนี้ครับ
Code (PHP)
class Test_model extends CI_Model{
	function Test_model(){
		parent::__construct();
	}
	
	function getData(){
		
		$sql = $this->db->get('Daily_Log');
		if($sql->num_rows() == 0){
			show_error('Database is empty!');
		}else {
			return $sql->result();
		}
	}
}


ปล. ผมใช้ตัว CodeIgniter 2.0.2



Tag : PHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-05-25 16:28:45 By : ichokd View : 2736 Reply : 14
 

 

No. 1



โพสกระทู้ ( 564 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook

ต้องเข้า ใจ concept ของ codeigniter ก่อนนะครับว่า มันทำงานในลักษณะของ MVC (model-view-control) โดย หัวใจหลักของมันจะอยู่ที่ controller ครับ เพราะฉะนั้นแล้ว คุณต้อง เขียน controller ขึ้นมาก่อน จากนั้น ค่อยเรียก model ไปจัดการครับ ส่วนที่ error ด้านบน เกิดจาก คุณไม่ได้เรียก libralies ของ database มาให้งาน ส่วน autoload['libralies'] นั้น คือ สั่งให้ โหลดมาให้เลยอัตโนมัติ ถ้าหากไม่ต้องการ ให้มาอัตโนมัติ ก่อนที่คุณจะใช้งานทุกครั้งคุณต้องใช้ $this->load->database(); ก่อนทุกครั้งครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-05-25 16:41:59 By : kalamell
 


 

No. 2



โพสกระทู้ ( 8 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณครับสำหรับคำตอบ

ผมเขียนในส่วน controler แล้วครับ แบบนี้
Code (PHP)
class Test extends CI_Controller{
	function Test(){
		parent::__construct();
	}
	
	function index(){
		$this->load->model('test_model');
		$data['result'] = $this->test_model->getData();
		$data['title'] = 'Test Template';
		$data['main_content'] = 'view_test';
		$this->load->view('template', $data);	
	}
}



ปัญหามันอยู่ตรงที่ว่า ผมไม่สามารถโหลดตัว database ได้ครับ ไม่ว่าจะโหลดด้วยวิธีไหน มันก็จะขึ้นหน้าขาวว่าง ๆ อย่างในรูปครับ
พอโหลด database เข้ามาแล้ว ไม่ว่าหน้าไหนก็เหมือนกันหมดเลยครับ เป็นหน้าขาว ๆ ทั้ง ๆ ที่หน้านั้นมีแค่ echo บัดทัดเดียวก็ไม่ขึ้นเลยครับ เหมือนกับว่า พอโหลด database แล้วมันทำให้เจ๊งไปทั้งระบบเลยครับ

ขอคำแนะนำด้วยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-05-25 16:45:42 By : ichokd
 

 

No. 3



โพสกระทู้ ( 564 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook

ถ้าจากที่คุณอธิบายข้างต้น ผมเข้าใจว่า คุณได้สร้าง Controller ชื่อ test ขึ้นมาแล้ว และ คุณก็ได้สร้าง model ชื่อ test มาด้วยเหมือนกัน หากคุณต้องการใช้ test model คุณต้องไปเรียก มากจาก controller ครับ ไม่สามารถจะไป เจาะที่ model โดยตรงได้ ซึ่งมันจะได้ประมาณนี้ครับ

test controller

class Test extends CI_Controller
{
 public function __construct(){
  parent::__construct();

  $this->load->model("test_model");
 }
 public function index()
 {
   echo $this->test_model->getData();
 }
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-05-25 16:48:54 By : kalamell
 


 

No. 4



โพสกระทู้ ( 564 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook

คุณต้อง echo ด้วยครับ เพราะว่า คุณเขียนโค้ด ให้มัน retrun ค่ามาให้อย่างเดียว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-05-25 16:49:58 By : kalamell
 


 

No. 5



โพสกระทู้ ( 8 )
บทความ ( 0 )



สถานะออฟไลน์


เอาใหม่ครับ

ผมโหลดตัว CodeIgniter ใหม่มาจากเว็บ แล้วก็ใส่ใน server เปิดหน้าแรกได้แบบรูปบนครับ ไม่ได้ไปแก้อะไรเลยนะครับ
พอไปแก้ในไฟล์ autoload.php จาก $autoload['libraries'] = array(); เป็น $autoload['libraries'] = array('database'); ตรงนี้ที่เดียว ก็ได้แบบรูปที่สองด้านล่างครับ เป็นหน้า ว่างเปล่า ๆ หรือว่ามันต้องเซ็ตอะไรเพิ่มอีกไหมครับ ถึงจะใช้ database ได้

CodeIgniter error 2
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-05-25 17:02:33 By : ichokd
 


 

No. 6



โพสกระทู้ ( 51 )
บทความ ( 0 )



สถานะออฟไลน์


config database ยังครับ database.php
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-05-25 17:33:00 By : silasakk
 


 

No. 7



โพสกระทู้ ( 8 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 6 เขียนโดย : silasakk เมื่อวันที่ 2011-05-25 17:33:00
รายละเอียดของการตอบ ::

ใส่แล้วครับ ตามด้านล่างนี้
Code (PHP)
$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = '192.168.123.123';
$db['default']['username'] = 'root';
$db['default']['password'] = 'root';
$db['default']['database'] = 'cms';
$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;


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-05-25 17:35:20 By : ichokd
 


 

No. 8



โพสกระทู้ ( 4,719 )
บทความ ( 8 )



สถานะออฟไลน์


model ไม่ต้อง echo ก็ได้ เพราะมันถูก echo อยู่แล้วใน view


php ของคุณกำหนดให้ show error หรือเปล่า หน้าว่างๆแบบนี้ผมคิดว่ามันคงมี error แต่คุณไม่ได้กำหนดให้โชว์
ควรกำหนดให้โชว์แบบ E_ALL ด้วยนะครับ

ลองทดสอบ db แบบง่ายๆ สร้างฐานข้อมูล ตาราง และฟิลด์สัก 2 อัน (id, name)
กรอกข้อมูลลงไปผ่านทาง phpmyadmin สัก 2-3 รายการ

เขียนตัวอย่างนี้ลงใน controller เพื่อทดสอบ
Code (PHP)
$query = $this->db->get("table")
if ( $query->num_rows() > 0 ) {

foreach ($query->result() as $row) {
echo $row->id . " - " . $row->name . "<br />";
}

} else {
echo "nothing";
}


ถ้ามันแสดงผลออกมาถูกต้อง ก็ถือว่ามันทำงานได้ปกติ ต้องไล่โค้ดที่คุณเขียนดูว่าไม่ถูกตรงไหน

ปล. ผมมีทำตัว backend ไว้สำหรับผู้ใช้ codeigniter ที่จะเริ่มงานใหม่ๆเอาไปใช้กันฟรี ลองใช้ดูครับ
http://www.okvee.net/2011/05/10/ok-vee-web-starter-kit/
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-05-25 21:31:27 By : mr.v
 


 

No. 9



โพสกระทู้ ( 4,719 )
บทความ ( 8 )



สถานะออฟไลน์


ย้ำ.. การใช้ $sql->result() หรือ $query->result() ( ขึ้นอยู่กับตัวแปลที่คุณกำหนด) มันต้องใช้กับ foreach นะครับ เพราะมันจะส่งมาเป็นเหมือนกับ array->field ตามโค้ดตัวอย่าง

ถ้าจะเอาเฉพาะ ค่าเดี่ยวๆให้ใช้ $sql->row();
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-05-25 21:33:51 By : mr.v
 


 

No. 10



โพสกระทู้ ( 8 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณมากครับ ไว้พรุ่งนี้ไปที่ทำงานแล้วผมจะไปลองดูครับ ได้ผลยังไง จะมารายงานให้ทราบอีกทีครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-05-25 21:41:15 By : ichokd
 


 

No. 11



โพสกระทู้ ( 564 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook

แล้ว view template ผมคิดว่าสร้างไว้แล้ว แต่ ขาดการ echo ค่า $data ที่ส่งไป เพราะถ้าหาก database ไม่ถูกโหลด มันก็จะขึ้น error นะ หรือถ้า เทเบิลไม่มี หรือหา ฐานไม่เจอ ยังไง มันก็จะต้องขึ้น error อยู่ดี เป็นไปได้อย่างที่ผมบอกข้างต้นแหละครับว่า คุณไม่ได้ echo ค่า $data ที่คุณส่งไปมากกว่า


ประวัติการแก้ไข
2011-05-26 08:29:59
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-05-26 08:28:23 By : kalamell
 


 

No. 12



โพสกระทู้ ( 8 )
บทความ ( 0 )



สถานะออฟไลน์


ที่ผมไปลองมานะครับ ที่เครื่องเดิมก่อนหน้านี้
โหลดตัว CodeIgniter มาใหม่ และไปวางบนserver เซ็ตเฉพาะตัว database.php ขึ้นหน้าปกติ (หน้า welcom อะไรของมัน หน้าแรกนะคับ)
หลังจากไปเพิ่ม database ใน autoload ผลเหมือนเดิมครับ ขึ้นหน้าขาว ๆ ไม่มีอะไรแจ้งเตือนเลย

ผมลองใหม่ กับเครื่องใหม่ทำเหมือนกัน แต่คราวนี้ไม่มีปัญหาครับ autoload ตัว database ได้ตามปกติครับ

ผมเลยสงสัยว่าเป็นเพราะที่ตัวเครื่องมีโปรแกรมบางตัวมีปัญหา

เครื่องแรก เป็น windows 2003 iis6 php 5.2.14
เครื่องสอง เป็น windows 7 iis 7 php 5.3.6

โดยทั้งสองตัวไปใช้ database ที่อีกเครื่องนึงเหมือนกันครับ

ตอนนี้ผมเลยกลัวว่า ทำเสร็จแล้วอับขึ้น server จริงแล้วมันจะมีปัญหาอะไรเหรือเปล่า

ปล. ของคุณทุกความเห็นมากครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-05-26 10:16:38 By : ichokd
 


 

No. 13

Guest


อยากรู้concept MCV อะครับ แบบที่ท่านใช้กันนะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-06-24 11:13:04 By : tum555
 


 

No. 14



โพสกระทู้ ( 564 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook

MVC ตามที่ผมเข้าใจก็คือ

V = View เป็นส่วนของการทำหน้าที่ในการแสดงผลออกทางหน้าจอ เป็นส่วนรับ event มาจากผุ้ใช้งาน

C = Controller เป็นส่วนกลางของการติดต่อระหว่าง V และ Model ซึ่งมันไม่สามารถที่จะติดต่อกันได้โดยตรง ต้องอาศัย Controller เป็นตัวเชื่อม โปรแกรมเมอร์บางคนเขาเขียนแค่ C กับ V เท่านั้นก็สามารถทำงานได้เหมือนกัน

M = Model เป็นส่วนของ Logic กระบวนการทำงาน เช่น เรียกฐานข้อมูล บันทึก เซฟ ที่ Controller ติดต่อ แต่ในกรณีนี้ Controller ก็สามารถที่จะทำได้เหมือนกัน แต่ เมื่อมีการแก้ไข ก็ต้องไปไล่ทุก Controller จึงต้องเขียน Model เพื่อจัดการส่วนนี้โดยเฉพาะ

ผมเขียนตามเข้าใจของผมนะ ผิดถูกอย่างไรก็ขออภัย เพราะไม่ได้จบมาโดยตรงครับ


ระบบนี้ที่ผมใช้ codeigniter พัฒนา ทั้งดุ้นเลย แต่ jquery กับ plugin เท่านั้นที่มาช่วยเสริม

ระบบรายงานผลการแข่งขันศิลปหัตถกรรมนักเรียน บุรีรัมย์ เขต 1


ประวัติการแก้ไข
2011-06-24 12:13:08
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-06-24 12:07:11 By : kalamell
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : CodeIgniter โหลด database แล้วไม่เกิดอะไรขึ้นครับ ช่วยดูให้หน่อยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่