<h3>Son kayıtlar</h3> <table class="table table-inverse"> <?php foreach($bilgiler as $veri){ ?> <tr> <td><?=$veri['id']?></td> <td><?=$veri['name']?></td> <td><?=$veri['eposta']?></td> <td> <a class="btn btn-danger" href="<?php echo base_url(); ?>Anasayfa/verisil/<?=$veri['id']?>">Sil</a> </td> <td> <a class="btn btn-primary" href="<?php echo base_url(); ?>Anasayfa/duzenle/<?=$veri['id']?>">Düzenle</a> </td> </tr> <?php } ?> </table>Yukarıda veritabanından son kayıtları aldım. Diziden gelen değerleri parçalı halde gerekli tabloya ekledim. Yanlarına da onlara ait id değerini verisil metoduna ekledim. Artık 3. parametre olarak bir değer var. Bu değeri Controller dosyamızda belirtecek ve model dosyamıza öyle göndereceğiz. Şimdi Sil butonuna tıklandığında bizi direkt olarak Anasayfa Controller‘ında verisil metoduna gönderecek. Gelen id değerini de aşağıdaki kod ile alacağız ;
$id = $this->uri->segment(3);Artık Controller dosyamızda bir index ve bir de verisil metodunu yazma bölümüne geçebiliriz.
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Anasayfa extends CI_Controller { function __construct() { parent::__construct(); } public function index(){ $this->load->view('anasayfa_view.php'); } public function verisil(){ $this->load->model('verimodel'); $id = $this->uri->segment(3); $sil = $this->verimodel->sil($id); if($sil==0){ echo "başarısız"; }else{ redirect('Anasayfa/listele'); } } }Yukarıda verisil metoduna bir istek geldiğinde ilk olarak verimodel dosyasını yüklüyoruz. (Onu şuan oluşturmadık.) Ardından id değerini yukarıdaki gibi aldık. $sil adında bir değişken var ve bu değişkende verimodel dosyasında birazdan belirleyeceğimiz sil metodunun sonucu tutulacak. Gerisi zaten bir if komutuna bakıyor. İşlem başarılı ise Listele sayfasına gönderiyoruz ve veri silinmiş yeni liste hazır karşımızda duruyor. Şimdi ise model dosyamızı oluşturalım ve içerisinde bir sil metodu ile controller bölümünün işlev görmesini sağlayalım.
<?php class verimodel extends CI_Model{ function __construct(){ parent:: __construct(); $this->load->database(); } function sil($id){ $this->db->delete('users',array('id'=>$id)); } }İşte bir satır kod ile fonksiyonda id değeriyle gelen veriyi silebiliyoruz. Tablo ismi ‘users’ ve id değeri gelen id’ye eşit olan değer gitti. Ufak bir not : Eğer yönlendirme ve veritabanı bölümlerinde sorun yaşarsanız Application/Config/Autoload dosyasında
$autoload['libraries'] = array(); burayı aşağıdaki ile değiştirin. $autoload['libraries'] = array('database'); Ardından ---------------------------- $autoload['helper'] = array(); satırını da aşağıdaki gibi değiştirin. $autoload['helper'] = array('url');Artık her sayfanızda otomatik olarak veritabanı bilgileriniz çekilecek ve url kullanımınıza izin verilecek.