Hızlıca bir veritabanına bağlanalım
Evet, hemen application/config/ dizinindeki database.php dosyamızı açalım ve içerisindeki $db dizilerine gerekli veritabanı bilgilerimizi girelim. Username , password, database (name), en temel gerekli olan bilgilerdir. Bunları girdikten sonra veritabanı bağlantımız gerçekleştirilmiştir ve artık application üzerinde CIın database classı ile istediğimiz işlemi yapabiliriz.
Kendi modelimizi oluşturup kodlamaya başlayalım
Database kütüphanelerimizi kullanarak işlem yapmak üzere application/models dizinimize yeni bir dosya oluşturalım. Bu model bizim veritabanı ile ilgili işlemleri yürüttüğüm fonksiyonları içerecek. Basit bir formdan gelen veriler controller tarafından alınıp ,metodumuz aracılığıyla verileri databasee yazacak. Daha sonra aynı modelin farklı bir metodu bu verileri ekrana basacak. Herşey bu kadar basit

<?php
class My_model extends CI_Model
{
public function __construct()
{
$this->load->database();
}
}Database sınıfları Codeigniter yapısında hazır gelen yardımcı kütüphanelerdir. Genellikle database otomatik yüklenmesi için /config altındaki autoload.php de bulunan $autoload['libraries'] = array(database); satırı bu şekilde değiştirilir.Sırada veritabanı sınıflarını yüklemek var
Oluşturduğumuz bir controller üzerinde eğer yoksa bir constructer fonksiyonu oluşturalım.
public function __construct()
{
parent::__construct();
$this->load->model(array('my_model'));
}Veritabanı ile ilgili tüm ön hazırlıklar tamamlandığına göre artık işlemlerimizi yapma vakti gelmiştir.controllerımız içerisinde index metoduna bir view yükleyerek işe koyulalım.
public function index(){
$data['title'] ="Form sayfamız";
$this->load->view('home',$data);
}Daha sonra view dizinimize gidip hemen home.php dosyasını oluşturalım. İçeriğini örnek koda benzer şekilde kodlayabilirsiniz.<html><head><meta charset="utf-8"><title><?=$title;?></title></head><body>
<form action="<?=base_url('/my_controller/add');?>" method="post" />
<input type="text" name="mesaj" />
<input type="submit" value="Gönder" />
</form>
</body></html>Arayüzümüzü böylece tamamladık. Çok basit bir şey oldu ama orasını size bırakıyorum
Burada dikkat edilecek hususlar;base_url fonksyinu bana application yani ana dizini dönericektir. Parametre ile controller ismini ve controllerın hangi metoduna gideceğini yazıyorum. Yukarıdaki form post edildiğinde http://localhost/my_controller/add adresine gidicektir.
Controllerın ismini size bıraktım kendi controller isminize göre ilgili kısımları değiştirmeyi unutmayın. Örnekteki controller ismi my_controllerdır. İngilizce isimler el alışkanlığından dolayı
Tavsiye: kod yazarken türkçe değişken kullanmayın.Veritabanına veri ekleme
İşin özüne geldik artık. Şimdi veritabanına bir veri nasıl kaydedilir onu göreceğiz. Oluşturduğumuz Mymodel içinde dataAdd() metodu oluşturalım.
public function dataAdd($text)
{
$data = array('textMessage' => $text);
$this->db->insert('tablo1',$data);
}Yukarıdaki metodu açıklamak gerekirse bir parametre alıyor. Bu parametreyi bir dizide tutuyoruz. Daha sonra insert fonksiyonu bizim dizi içerisindeki verilerimizi belirttiğimiz tablo ya ekliyor. Codeigniter veritabanı kütüphanesinde genel olarak veri ekleme işlemi bu şekilde yapılıyor. Şimdi sıra bu metodu kullanacağımız asıl yer olan controller aşamasına geldi.Controller metodumuzu oluşturalım
Controllerımız içine add() isimli bir metod oluşturalım, hemen index metodunun altına ekleyelim.
public function add(){
if($_POST):
$text = $this->input->post($mesaj);
$this->my_model->dataAdd($text);
endif;
redirect();
}İnputtan gelen değeri $text değişkenimizde tutup modelimize veriyoruz. Bu şekilde veritabanına yazılmış oluyor.Listeleme işlemini gerçekleştirelim
Mymodelin içine list() metodunu ekleyelim. Daha sonra controller da listemizi göstericez.
public function list()
{
$this->db->select('textMessage');
$this->db->from('tablo1');
if($this->db->get()->num_rows())
{
return $this->db->get()->result();
}
else
{
return false;
}
}Metodumuzu açıklayayım hemen. İlk olarak select ile tablomuzdan çekeceğimiz kısımları seçiyoruz. from ile hangi tablodan veri alacağımızı belirtiyoruz. Yerine göre sırasıyla join, where, order_by, limit özelliklerinide kullanabilrisiniz. İlerleyen örneklerde onlardanda bahsedicem. Sonucumuzu bir obje olarak dönderdik.Controllerda listemizi gösterelim
Controllerın index metoduna aşağıdaki listelemek için gerekli kodları ekleyelim.
public function index(){
$data['listObj'] = $this->my_model->list();
$data['title'] ="Form sayfamız";
$this->load->view('home',$data);
}Objemizin şimdi view tarafında bastırılması gerekli.$data[] dizisinde tanımlanan her indis , view tarafında birer değişken olarak görülür.
Son adım , Listeleme
View içerisinde home.php oluşturmuştuk. İstediğiniz bir kısmına (body içinde =) ) kodları ekleyin.
<?php foreach($listObj as $list): echo $list->textMessage; endforeach;?>Objemizi foreach ile bir değişkende bastırıyoruz.
Objemizin yapısını görmek için print_r($listObj); ile foreach dışında bir daha bastırabilrisiniz.
Böylece basit bir veritabanı uygulamasını tamamlamış bulunuyoruz. Eğer sorularınız yada önerileriniz varsa mutlaka gönderinin altına belirtin. Okuduğunuz için teşekkür ederim bir sonraki yazıda görüşmek üzere..
kaynak