Membuat Website dengan CodeIgniter #2
Sekarang kita akan meluncur ke section utama, yakni permainan database. Pada dasarnya, semua yang ingin ditampilkan di halaman web kita adalah sebuah permainan database biasa. Entah itu recent post, recent comment, dsb. Nah, disini, karena kita menggunakan framework untuk membuatnya, maka kita sebaiknya menaati ‘nasehat’ dari CI.
Apa itu nasehatnya? Dalam hal ini adalah ‘gunakan model untuk mengakses database’. Saya akan berikan contoh model untuk membuat tampilan ‘recent posts’. Sebelumnya, pada database yang sudah kita tentukan, buat tabel untuk posting.
-- -- Table structure for table `posting` -- CREATE TABLE `posting` ( `posting_id` int(5) NOT NULL auto_increment, `posting_judul` varchar(100) collate latin1_general_ci NOT NULL, `posting_isi` longtext collate latin1_general_ci NOT NULL, `posting_tanggal` varchar(50) collate latin1_general_ci NOT NULL, `posting_aktif` int(1) NOT NULL default '1', `posting_hits` int(100) NOT NULL, PRIMARY KEY (`posting_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ;
Tabel di atas masih sangat sederhana, Anda dapat menambahkan kolom jika Anda menginginkannya. Nah, ini dia modelnya…
Class Postmodel extends Model { function Postmodel() { parent::Model(); } function getRecentPost() { $this->db->select('*'); $this->db->from('posting p'); $this->db->where('posting_aktif',1); // hanya posting yang aktif yang ditampilkan $this->db->order_by('p.posting_id','desc'); $this->db->limit(5); // diambil lima entri terbaru return $this->db->get(); } }
Ok. Selanjutnya, kita buat modifikasi controller yang dulu kita buat, pada seri tutorial website #1.
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); class Web extends Controller { function Web() { parent::Controller(); $this->load->model('postmodel'); $this->load->helper('text'); } function index() { $data['title']="Welcome to My Website"; // data untuk variabel $title $data['content']=$this->postmodel->getRecentPost(); // data untuk variabel $content $this->load->view('main',$data); } }
Selanjutnya, modifikasi juga view ‘content.php’, karena view yang kita load (main.php) memanggil file content.php untuk jadi tampilan content.
<!-- content starts here --> <div id='content'> <?php foreach($content->result() as $row):?> <h3><?=$row->posting_judul?></h3> <p class="post-info"> Oleh Admin | <?=$row->posting_hits?> hits </p> <p> <?=word_limiter($row->posting_isi,30)?> </p> <!-- batasi tampilan hanya 30 kata --> <p class="postmeta"> <span class="date"><?=date('d F Y',$row->posting_tanggal)?></span> </p> <?php endforeach< span class="phpScriptTag">?> </div> <!-- content ends here -->
Yups, kita selesai. Silakan dicoba. Kita akan buat yang lebih kompleks di tulisan mendatang (kategori, komentar, arsip, dsb). {to be continued }
Nb. Model memerlukan koneksi ke database. Di CI, ada beberapa cara untuk dapat terkoneksi ke database, dari yang otomatis sampai manual. Saran saya, lakukan dengan cara otomatis, karena kita akan sering menggunakan database dalam script kita. Untuk itu, pada autoload.php, tambahkan ‘database’ dalam array $autoload['libraries'].
Related posts:
- Membuat Website dengan CodeIgniter #4
- Membuat Website dengan CodeIgniter #3
- Membuat Website dengan CodeIgniter #1
- Simple Tutorial CodeIgniter Episode 3
- Membuat Combobox Dinamis dengan CI dan Ajax
49 Comments
Leave a comment
Recent Posts
Recent Comments
- LUKISAN MODERN on Sharing Script CI 1.7.2 untuk Sistem Informasi
- Wawan on Share MyFinance : Aplikasi Keuangan Berbasis PHP MySQL
- chandra on Share MyFinance : Aplikasi Keuangan Berbasis PHP MySQL
- nophil on Sistem Presensi dan Billing Sekolah
- yazid on Membuat Combobox Dinamis dengan CI dan Ajax
- faqih on Sharing Script CI 1.7.2 untuk Sistem Informasi
- rangga on Share MyFinance : Aplikasi Keuangan Berbasis PHP MySQL
- reeyz on Membuat Website dengan CodeIgniter #1
- Rubby on Membuat Website dengan CodeIgniter #4
- Anggie on Membuat Website dengan CodeIgniter #1
- reeyz on Membuat Website dengan CodeIgniter #1
- Fajar on Share MyFinance : Aplikasi Keuangan Berbasis PHP MySQL
- newbie2 on Ajax File Upload (CodeIgniter dan JQuery)
- newbie on Ajax File Upload (CodeIgniter dan JQuery)
- ardy on Share MyFinance : Aplikasi Keuangan Berbasis PHP MySQL
- Tips Trik Blogging on Simple Tutorial CodeIgniter Episode 3
- Anggie on Share MyFinance : Aplikasi Keuangan Berbasis PHP MySQL
- Manz on Share MyFinance : Aplikasi Keuangan Berbasis PHP MySQL
- Manz on Membuat Combobox Dinamis dengan CI dan Ajax
- anggie on Share MyFinance : Aplikasi Keuangan Berbasis PHP MySQL



Makacih mas atas tutorial yang bermanfaat ini,tapi qo ada yang ga jalan ya mas…tepatnya di file view ga bisa memanggil $content dan $title dari Controller…mkacih mas…
Bisa disampaikan muncul tulisan error apa?
Tidak ada error sih mas,hanya saja variabel tersebut tadi tidak muncul saat saya panggil…mkacih mas..
nice posting, saya yang masih newbie ini aja langsung ngerti^^
btw, di artikel sebelumnya dibahas klo di view untuk menampilkan data katanya bisa langsung tanpa melakukan looping… n looping dilakukan di model
klo itu caranya gmn yah? apa mungkin kita looping tag HTMLnya di model?
oiya, 1 lagi mas, maaf nh banyak nanya,, hhe
pada saat saya menitipkan data dari controller ke view,, kq datanya ga ke kirim yah,,
pass saya echo di view si variable datanya ga terdefinisi mas,,
thank yah^^
Benar, kita lakukan looping di model. Itu sih terserah sang programmer, enaknya gimana.
Untuk penitipan variabel, saya biasanya lakukan seperti ini…
Mas, anggi kalo boleh komentar, sampai saat ini saya mempelajari, penjelasan mas anggi sangat detail dengan codingan yg simple, salut…
Anda telah membantu orang banyak terima kasih :)
Wah…sama-sama deh. Latar belakang saya kn memang bukan dari komputer, saya orang eksak, matematika murni. Jadi, saya menyukai ke-simpel-an dan kejelasan…
maaf pemula.
untuk ‘model’ itu di simpan dimna yah?
Model biasanya disimpan dalam folder application/model/
model di simpan dengan nama apa mas..?
sesuai dengan nama class dalam model tersebut
Kok muncul pesan eror berikut :
Fatal error: Call to a member function select() on a non-object in F:\webdirectory\htdocs\a\system\application\models\postmodel.php on line 10
apanya yang salah yaa mas..
thanks
boleh kirim source nya? tampilkan pada baris yang salah tadi
Mas anggie, bisa minta contoh penggunaan Captha yang simple tidak mas? yang lengkap dengan validasi dan simpan ke database.
Saya mau make captcha bingung. cara validasi nya.
sudah melihat artikel di blog ini tentang captcha
mas saya udah coba step2 yg diatas tp kok yg muncul cuma header ma footer aja ya.. contentx kok ga muncul?? mohon bimbinganx mas..:)
assalamualaikum..mas..saya mo nanya…knpa klo itu klo di view ga muncul variabel nya..tapi klo ditulis itu baru mau muncul..jdi intinya beda dengan apa ya mas..apa saya harus konfigurasi base php nya..mohon bantuan nya..wasalam
assalamualaikum..mas..saya mo nanya…knpa klo
itu di view ga muncul nilai variabel nya..tapi klo ditulis
itu baru mau muncul..jdi intinya beda
apa ya mas..apa saya harus konfigurasi base php nya..mohon bantuan nya..wasalam
Itu setting di phpnya mas..di php.ini, bagian shorttag dicari aja, klo off di on kan…
mas..mksd na yg ini ya…
Emm…sudah direstart apache-nya belum?
Wah keren banget mas tutorialnya. Saya baru belajar CI dari web ini, oh iya mau tanya mas untuk tutorial kedua ini saya dah sukses cuman sepertinya format tanggal masih belum berhasil
mas anggie… kok muncul error pada line ini “<?php endforeach?>
” di localhos saya,,,,????? bantuannya donk…
@adnan : ternyata muncul string yang salah di artikel itu. Hilangkan string
< span class="phpScriptTag">wah…mantep tutsnya gan..
rasanya kalo class modelnya di load secara otomatis akan sangat membantu mengurangi repetitive-task, secara akan banyak terjadi interkoneksi ke database melalui class model.
cara konfigurasi men-load class model secara otomatis bisa di lakukan dengan mendeklarasikannya di file autoload.php. kira” seperti ini :
$autoload['model'] = array(‘nama_model1′, ‘nama_model2′, ‘nama_model_n’);
@syafii : tergantung kebutuhan mas…klo di atas saya tampilkan di controller karena memang desain saya, model tersebut hanya untuk controller ‘web’. Jika kita punya banyak model, alangkah lebih bijak jika model tersebut diload di masing masing controller yang membutuhkannya saja, untuk menghindari proses load script yang percuma
mas kok kayak gini
A PHP Error was encountered
Severity: Notice
Message: Undefined property: Postmodel::$db
Filename: models/postmodel.php
Line Number: 10
Fatal error: Call to a member function select() on a non-object in C:\wamp\www\ci_simpleweb\system\application\models\postmodel.php on line 10
apanya ya?
oia, satu lagi.
template punya saya hasil donlotan, tapi kenapa cssnya jadi gak fungsi alias tampilannya masih standar? pdhl hsil donlotan tsb css sudah sy pindah ke folder view.
gmn y?
@agus : di config/autoload.php, tambahkan ‘database’ di array $autoload['libraries']
untuk CSS, pakai URL lengkap mas…jangan pake path…jadi sekalian sama base_url nya
Tetep aja mas.. Fatal error: Call to a member function select() on a non-object in C:\AppServ\www\latian\ci20\application\models\postmodel.php on line 10
padahal udah : di config/autoload.php, tambahkan ‘database’ di array $autoload['libraries']
makasih mas
@ronfeel : saya tidak bisa menjawab pertanyaan yang seperti ini. Seharusnya aturan bisa, menurut user guide bisa, di tempat saya bisa, tapi Anda bilang tidak bisa.
makasih mas,
maaf sya baru belajar ci..
mohon bantuannya mas
oke mas, sudah jadi.
tapi mohon diedit lagi ni artikelnya, coz yang script
saya tulis juga. Ternyata itu salah kan mas, harusnya gak ada. Dari tadi parse error terus ternyata itu ya?
makasih bantuannya
@agus : seperti jawaban diatasnya, seharusnya bisa mas, di tempat saya bisa. Klo di tempat mas ga jalan, itu ya aneh, berarti ada sesuatu yang karena keterbatasan saya, saya tidak tahu.
mas saya pusing d
–
– Table structure for table `posting`
–
CREATE TABLE `posting` (
`posting_id` int(5) NOT NULL auto_increment,
`posting_judul` varchar(100) collate latin1_general_ci NOT NULL,
`posting_isi` longtext collate latin1_general_ci NOT NULL,
`posting_tanggal` varchar(50) collate latin1_general_ci NOT NULL,
`posting_aktif` int(1) NOT NULL default ’1′,
`posting_hits` int(100) NOT NULL,
PRIMARY KEY (`posting_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ;
maksud nya gmana …?
Pusing dimana? itu hanya query mysql untuk buat tabel ‘posting’ di database
mas punya saya masih eror seperti ini ya’?
“Parse error: syntax error, unexpected ‘<', expecting ';' in C:\AppServ\www\webku\application\views\content.php on line 13"
di atas ada pertanyaan yang sama kayanya tapi itu juga saya masih bingung yang di hapus string yang mana,, maklum saya baru belajar mas.. tolong di bantu ya…
ini script saya mas.. kira2 mana yang salah yah??
result() as $row):?>
posting_judul?>
Oleh Admin | posting_hits?> hits
posting_isi,30)?>
posting_tanggal)?>
<?php endforeach ?>
trimakasih
ganti aja php tag
dengan
Parse error: syntax error, unexpected ‘<', expecting ';' in E:\ci\system\application\views\content.php on line 13 poenyakoe , kalau string <span "phpscripttag" koe hapus nge blank term header/title ….. boleh nanya mas versi ci nya berapa yah…mgkn bs buat referensi saya. trims
Maaf mas kenapa muncul eror seperti ini yah
Fatal error: Call to a member function result() on a non-object in C:\wamp\www\cirahma\system\application\views\content.php on line 3
result() ini apa ya mas ya?
maaf newbi neh
Terimakasih
@cahsolo : lihat comment diatas comment mas..
saya pake CI 1.7.3
@zahra : itu berarti query db nya ada yang salah..”on a non-object”, coba periksa query db nya.
mas, saya masih nubitol..
versi CI yang saya gunakan 2.0.2
ada beberapa perbedaan ya dengan versi lama, seperti pada versi 2.0.2
class Web extends CI_Controller {
}
kalau versi 1.7 class Web extends Controller { … }
kenapa ya waktu saya nyobain ini muncul error seperti ini
A PHP Error was encountered
Severity: Notice
Message: Undefined property: Web::$load
Filename: controllers/web.php
Line Number: 6
Fatal error: Call to a member function model() on a non-object in C:\xampp\htdocs\ci\application\controllers\web.php on line 6
kalau disuruh mengirim kan file saya dikirim kemana y?
keren mas tutorialnya.. thanks :-)
Bos, mau tanya untuk pembuatan controller utama dengan code :
load->view(‘main’,$data); // load main.php (kita buat nanti) dengan beban data
}
}
yang ada pada membuat website dengan codeignitier#1
Code itu diletakkan dimana dan disave dengan nama apa? saya cukup mengalami kesulitan di hal itu.. mohon dibantu, untuk pengerjaan proyek kuliah..
Need Reply a.s.a.p. THX before
Kalo mau buat situs seperti yahoo answers menggunakan CodeIgniter tuh seperti apa mas?
muncul eror:
Severity: Notice
Message: Undefined property: Web::$postmodel
Filename: controllers/web.php
Line Number: 12
Fatal error: Call to a member function getRecentPost() on a non-object in C:\xampp\htdocs\Coba_Siaga\application\controllers\web.php on line 12
saya pakai CI 2.1.0….
Hello…tutorial ini untuk CI kurang dari 2.0.
Silakan kunjungi blog saya yang baru di http://anggytrisnawan.com.
Insya Allah tutorialnya lebih update (dan memakai CI > 2.0)