1. Codeigniter Framework (CodeIgniter Framework Tutorial) Basic Tutorials of Codeigniter Framework
  2. কোডইগনাইটার ইনস্টল (CodeIgniter Install Tutorial in Bangla)
  3. How to create First Application in CodeIgniter
  4. কোডইগনাইটারের URL স্ট্রাকচার (structure of codeigniter)
  5. Codeigniter দিয়ে query করা এবং result দেখা (CI Query & Show Results)
  6. Database থেকে Data দেখা (CI Fetch Data from Database)
  7. Model তৈরী এবং কন্ট্রোলারে Access (Create Model & Access in Controller)
  8. Codeigniter দিয়ে ডেটাবেসে data ঢুকানো (CodeIgniter Insert Data to Database)
  9. Form দিয়ে ডেটাবেসের data সম্পাদনা (Data Edit in Database Via Form | Codeigniter Tutorials)
  10. ডেটাবেসের data delete (Data Delete in Database | Codeigniter Tutorials) | SP Foundationbd
  11. Form Validation টিউটোরিয়াল (CI Form Validation Tutorial | Codeigniter Tutorials) | SP Foundation
  12. Form validation tutorials (CI Form Validation Tutorial) - আরও উন্নত validation
  13. Codeigniter bootstrap integration এবং best প্রাকটিস | SP Foundationbd
  14. Codeigniter পেজিনেশন Tutorials (CodeIgniter Pagination Tutorial) | SP Foundationbd
  15. কোডইগনাইটার pagination tutorials (CodeIgniter Pagination Tutorial) - ২য় পদ্ধতিতে pagination
  16. Codeigniter সেশন Management (Session Management CodeIgniter) part one
  17. Codeigniter session ম্যানেজমেন্ট (Session Management CodeIgniter) - সেশন ড্রাইভার part two
  18. কোডইগনাইটার file আপলোড (CodeIgniter File Upload)
  19. কোডইগনাইটার Ajax টিউটোরিয়াল (CodeIgniter Ajax Tutorial) | SP Foundationbd
  20. কোডইগনাইটার URI রাউটিং টিউটোরিয়াল (CodeIgniter URI Routing Bangla Tutorials) | SP Foundationbd
  21. কোডইগনাইটারে একসাথে একাধিক ডেটাবেস ব্যবহার (Use Multiple Database Together in CodeIgniter)

Database থেকে Data দেখা (CI Fetch Data from Database)

Codeigniter  দিয়ে ডেটাবেসে যেকোন Operation করা খুবই সহজ। কোডইগনাইটারের নিজস্ব query builder দিয়ে যেকোনভাবে ডেটাবেসে কোয়েরি করে ডেটা আনতে পারেন। এই টিউটোরিয়ালে সাধারন একটি ডেটাবেস application দেখাচ্ছি যেখানে "wch_cit" নামের একটি database থেকে সব ডেটা এনে ব্রাউজারে দেখাব।

================================================================

যেহেতু এই এপ্লিকেশনে আমরা database নিয়ে কাজ করব তাই আগে থেকেই ২টি configuration ঠিক করে নিতে হবে।

. ডেটাবেসটি তৈরী হয়ে গেলে সেটার connection: connection দেয়া খুব সহজ আগের টিউটোরিয়ালে একবার এটা দিয়েছি। ওখানে "database.php" তে এই ডেটাবেসের তথ্যগুলি দিন। যেমন

1.'hostname' => 'localhost',

2.'username' => 'root',

3.'password' => '',

4.'database' => 'wch_cit',

5.'dbdriver' => 'mysqli',

. database library load: কোডইগনাইটারে database  অপরেশনের জন্য প্রচুর method আছে। এগুলি ব্যবহার করতে হলে আগে "database" লাইব্রেরীটি load করতে হবে। অটোলোড করতে পারেন ফলে প্রত্যেকটি controller বা মডেলে এসব method ব্যবহার করতে পারবেন। ইচ্ছে করলে অটোলোড নাও করতে পারেন এবং নির্দিষ্ট একটি কন্ট্রোলারে ডেটাবেস লাইব্রেরী লোড করা যায়। অটোলোড করতে "spfoundationbd/application/config/autoload.php" ফাইলটি খুলুন এবং নিচের মত করে দিন

1.$autoload['libraries'] = array('database');

ধরুন আপনার আরও ৫টি লাইব্রেরী অটোলোড করতে হবে তখন কমা দিয়ে দিলেই হবে। যেমন

1.$autoload['libraries'] = array('database','user_agent','email');

===================================================

এবার "wch_cit" নামে একটি ডেটাবেস তৈরী করুন। নিচে ডেটাবেসটির code দিলাম। "wch_cit" ডেটাবেসে "users" নামে একটি টেবিল  তৈরী করে সেখানে কিছু ডেটা ঢুকানো আছে। নিচের কোডটি SQL কোড, তাই শুধু ডেটাবেসটি তৈরী করে এরপর সিলেক্ট করে কোয়েরিটি রান করালেই table এবং ডেটাসহ তৈরী হয়ে যাবে। হেইডিএসকিউয়েল কিংবা phpmyadmin a চালাতে পারেন।

01.CREATE TABLE IF NOT EXISTS `users` (

02.`id` int(11) NOT NULL AUTO_INCREMENT,

03.`username` varchar(50) NOT NULL,

04.`email` varchar(50) NOT NULL,

05.`about` text NOT NULL,

06.PRIMARY KEY (`id`)

07.) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

08.

09.INSERT INTO `users` (`id`, `username`, `email`, `about`) VALUES

10.(1, 'rejoan', 'rejoan.er@gmail.com', 'I am rejoanul alam from spfoundationbd '),

11.(2, 'adnan', 'adnan@gmail.com', 'I am adnan from bangladesh'),

12.(3, 'shuva', 'shuva@gmail.com', 'This is Shuva Chakraborty from kolkata');

ডেটাবেসটি তৈরী হলে নিচের মত ডেটা দেখতে পারবেন। এই ডেটাই এখন MVC' controller এবং view ব্যবহার করে ব্রাউজারে দেখাব

 এখন একটি controller তৈরী করতে হবে। এর আগের টিউটোরিয়ালে যেখানে "Hello_world.php" যেখানে তৈরী করেছিলেন সেই ডিরেক্টরিতেই এবার "Users.php" নামে  আরকেটি কন্ট্রোলার তৈরী করুন। এবার কন্ট্রোলারে নিচের কোড লিখুন

spfoundationbd /application/controllers/Users.php ফাইল

01.<?php

02.defined('BASEPATH') OR exit('No direct script access allowed');

03.class Users extends CI_Controller {

04.05.public function index(){

06.$data['title'] = 'Fetch Database Info';

07.$query = $this->db->get('users');

08.$data['users'] = $query->result_array();

09.$this->load->view('users',$data);

10.}

11.}

এরপর "views" ডিরেক্টরিতে "users.php" নামের একটি ভিউ file তৈরী করে সেখানে নিচের মত কোড দিন

spfoundationbd /application/views/users.php ফাইল

01.<html>

02.<head>

03.<title><?php echo $title; ?></title>

04.</head>

05.<body>

06.<?php foreach($users as $user):?>

07.<h2>Name : <?php echo $user['username'];?></h2>

08.<p>Email : <?php echo $user['email']; ?></p>

09.<p>Details : <?php echo $user['about']; ?></p>

10.<?php endforeach;?>

11.</body>

12.</html>

এবার "http://localhost/ spfoundationbd /index.php/users" এই URL টি ব্রাউজারে রান করা নিচের মত output দেখবেন (আমি .htaccess ফাইল দিয়ে index.php উঠিয়ে দিয়েছি তাই URL "index.php" ছাড়া দেখাচ্ছে)

ব্যাখ্যা: get() এবং result_array() এগুলি হল ডেটাবেস লাইব্রেরীর মেথড, get() এর ভিতর প্যারামিটার হিসেবে টেবিলের নাম দিতে হয় যেমন আমি দিয়েছি get('users') তবে এটা কিন্তু কোডে যেভাবে লিখেছি সেভাবেই লিখতে হবে অর্থ্যাৎ $this->db->get('users') কারন OOP তে জেনে এসেছেন একটা অবজেক্টের method এভাবে একসেস করতে হয়। আর result_array() মেথডটি $this->db->get('users') এই কোয়েরি থেকে রিটার্ন করা ডেটাগুলি অ্যারে হিসেবে $result এনেছে। আর $data অ্যারের ভিতর ইনডেক্স হিসেবে যেটা দিবেন সেটা ভিউ ফাইলে ভেরিয়েবল হিসেবে একসেস করা যায় এগুলিতো আগের টিউটোরিয়ালগুলিতেই আলোচনা হয়েছে।

কন্ট্রোলার থেকে query করে ডেটা এনে সেটা ভিউ ফাইলে $data['users'] দিয়ে দিয়েছি এখন ভিউ ফাইলে (views/users.php) এটাকে foreach দিয়ে লুপে ফেলে ডেটা ইচ্ছে মত ফরমেট করে দেখিয়েছি।

 

** আমাদের সব লজিক থাকবে কন্ট্রোলারে আর ভিউ ফাইলে থাকবে শুধু এইচটিএমএল কোড সাথে টুকিটাকি পিএইচপি কোড যেমন এখানে foreach() লুপ ব্যবহার করেছি।