21 / 06 / 2009

class : codeigniter [ ekle / sil / güncelle ]

ekleyen: Emre Çevik kategori: codeigniter| php

Merhaba,

Kendi sistemimde kullandığım bu sistem veri tabanına ekleme/güncelleme/silme işlemlerini yapıyor ve dışarıdan gelen bilgileri verdiğiniz kurallara göre süzme işlemine yarıyor.

codeigniter-class

Kullanımı benim işimi baya bir hızlandırıyor. Hoşunuza giderse kullanmanız açısından veriyorum.

Hata ile karşılaştığınız kısımları bildirirseniz sevinirim.

Kullanım

Öncelikle classı çağıracağız. çağırma işlemi yaparken kullanıcağımız mysql tablosunuda belirtmemiz gerekmektedir. Aşağıdaki koddanda anlaşıldığı gibi Jure classını çağırıyoruz ve “news” tablosu ile çalışacağımızı belirtiyoruz.

$this->load->library('jure', array('table' => 'news'));
$array = array( 
              'icerik' => array( 
                    'rules' => 'trim|htmlspecialchars',  
                    'rname' => 'content',  
                    'value' => '' 
                    ), 
 
                'gonderen' => array( 
                    'value' => 'emre' 
                ) 
 
        ); 
 
$this->jure->_add($array);

Yukardaki işlem aşağıdaki sorguyu çalıştırır.

INSERT INTO `news` (`content`, `gonderen`) VALUES ('icerik inputundan gelen veriyi trim ve htmlspecialchars yaptıktan sonra buraya ekler', 'emre')

Aşağıdaki örnekleri inceleyince daha iyi anlıyacağınızı umuyorum. rules sadece dışardan gelen veriler için çalışmaktadır.

ÖRNEKLER:

CREATE TABLE `news` (
  `id` int(8) unsigned NOT NULL auto_increment,
  `name` varchar(255) NOT NULL,
  `content` text NOT NULL,
  `gonderen` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin5 AUTO_INCREMENT=1 ;

Örnek 1: ( veri tabanına kayıt ekleme )

    function ornek1() 
    { 
        $this->load->library('jure', array('table' => 'news')); 
 
        $post['name']['value']      = 'name alanı'; 
        $post['content']['value']   = 'içerik kısmı'; 
        $post['gonderen']['value']  = 'emre'; 
        $this->jure->_add($post); 
    } 
        //INSERT INTO `news` (`name`, `content`, `gonderen`) VALUES ('name alanı', 'içerik kısmı', 'emre')

Örnek 2: ( veri tabanına kayıt ekleme )

    function ornek2() 
    { 
        $this->load->library('jure', array('table' => 'news')); 
 
        $post['name']['value']      = 'name alanı'; 
 
        $post['icerik']['value']    = 'içerik kısmı'; 
        $post['icerik']['rname']    = 'content'; 
 
        $this->jure->_add($post); 
        //INSERT INTO `news` (`name`, `content`) VALUES ('name alanı', 'içerik kısmı') 
    }

Örnek 3: ( veri tabanındaki kayıtı düzenleme )

    function ornek3() 
    { 
        $this->load->library('jure', array('table' => 'news')); 
 
        $post['name']['value']      = 'name alanı'; 
        $post['content']['value']   = 'içerik kısmı'; 
        $post['gonderen']['value']  = 'emre'; 
 
 
        $where = array('field' => 'id', 'value' => 1); 
        $this->jure->_edit($post,$where); 
        //UPDATE `newss` SET `name` = 'name alanı', `content` = 'içerik kısmı', `gonderen` = 'emre' WHERE `id` = 1 
 
    }

Örnek 4: ( veri tabanından kayıt silme )

    function ornek4() 
    { 
        $this->load->library('jure', array('table' => 'news')); 
 
        $data = array('field' => 'id', 'value' => 1); 
 
        $this->jure->_del($data); 
        //DELETE FROM `news` WHERE `id` = 1 
    }

Örnek 5: ( ekleme / silme / düzenleme formu )
application/controllers/examples.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 
/** 
 * Kolay Ekleme Zımbırtısı 
 * 
 * @author        Emre Çevik * info@internet.com.tr 
 * @link        http://internet.com.tr 
 * @version        Version 1.0 
 */ 
class Examples extends Controller { 
 
    function Examples() 
    { 
        parent::Controller();     
 
    } 
 
    function add() 
    { 
 
        $this->load->library('jure', array('table' => 'news')); 
 
        $post['name']['rules']         = 'trim|htmlspecialchars|required|min_length[4]'; 
 
        $post['icerik']['rules']       = 'trim|htmlspecialchars'; 
        $post['icerik']['rname']       = 'content'; 
 
        $post['gonderen']['value']     = 'emre'; 
 
        $submit     = $this->input->post('submit'); 
 
        if(!empty($submit)) 
        { 
            if($this->jure->_add($post)) 
            { 
                exit("haber eklendi"); 
            } 
        } 
 
        $this->theme->assign('validation', $this->validation); 
        $this->theme->assign('content', $this->theme->fetch('submit.tpl')); 
        $this->theme->output(); 
 
    } 
 
    function edit() 
    { 
         $this->load->library('jure', array('table' => 'news')); 
 
        $post['name']['rules']         = 'trim|htmlspecialchars|required|min_length[4]'; 
 
        $post['icerik']['rules']       = 'trim|htmlspecialchars'; 
        $post['icerik']['rname']       = 'content'; 
 
        $post['gonderen']['value']     = 'emre'; 
 
        $submit = $this->input->post('submit'); 
 
        if(!empty($submit)) 
        { 
            $id = intval($this->input->post('id')); 
            $where = array('field' => 'id', 'value' => $id); 
            if($this->jure->_edit($post,$where)) 
            { 
              exit("haber duzenlendi"); 
            } else { 
                $val = $this->validation; 
            } 
        } else { 
            $id = intval($this->uri->segment(3)); 
            $data = array('field' => 'id', 'value' => $id); 
            $val = $this->jure->getRow($data); 
            $val->icerik = $val->content; 
        } 
 
        $this->theme->assign('form_edit_id', $id); 
        $this->theme->assign('validation', $val); 
        $this->theme->assign('content', $this->theme->fetch('edit.tpl')); 
        $this->theme->output(); 
    } 
 
    function del() 
    { 
        $this->load->library('jure', array('table' => 'news')); 
 
        $data = array('field' => 'id', 'value' => intval($this->uri->segment(3))); 
 
        $this->jure->_del($data); 
    } 
 
 
} 
?>

application/views/edit.tpl

<form name="form" method="post">
name : <input type="text" name="name" value="{$validation->name}" style="width:200px" />{$validation->name_error}<br>
icerik : <textarea name="icerik" style="width:200px">{$validation->icerik}</textarea>{$validation->icerik_error}<br>
<input type="submit" name="submit" value="Git" />
<input type="hidden" name="id" value="{$form_edit_id}" />
</form>

applications/views/submit.tpl

<form name="form" method="post">
name : <input type="text" name="name" value="{$validation->name}" style="width:200px" />{$validation->name_error}<br>
icerik : <textarea name="icerik" style="width:200px">{$validation->icerik}</textarea>{$validation->icerik_error}<br>
<input type="submit" name="submit" value="Git" />
</form>

ben smarty kullandığım için kodlar smarty ile uygun. siz kendinize göre değiştirirsiniz. Ek olarak dosyalarıda ekledim.

dosya : codeigniter [ ekle / sil / güncelle ]
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • BlinkList
  • blogmarks
  • description
  • Furl
  • Ma.gnolia
  • NewsVine
  • Reddit
  • Technorati

benzer konular:

  1. auth sınıfı kullanımı
  2. codeigniter kurulumu
  3. auth sınıfı
  4. parse sınıfı
  5. 3 katmanlı mimari ve php -2-
  6. flyweight design pattern – php


(2 votes, average: 5.00 out of 5)
Loading ... Loading ...

4 yorum

1 | apranaxfort

20 / 09 / 2009 - 02:17

Avatar

Güzel

2 | özcan

20 / 09 / 2009 - 10:31

Avatar

çok güzel bir sistemmiş ama modelin kendisinini göremedim nerden indirebiliriz modeli?

3 | özcan

20 / 09 / 2009 - 10:32

Avatar

tamam buldum alttaymış :) linki farketmemişim

4 | Tutkun

29 / 12 / 2010 - 18:10

Avatar

Smarty yerine Codeigniter’ın Template Parser’ını öneriyorlar. Bu şekilde ekstradan makinanın yorulduğundan bahsediliyor.

Smarty kullanmak ne kadar mantıklı ki?

yorum yaz

ne yapıyoruz

eğleniyoruz?

anket

design pattern yazılarını nasıl buldunuz?

sonuçlar

Loading ... Loading ...