Örneğin bir blog veya e ticaret sitesinde öncekş ve sonraki gönderimleri almanıza olanak sağlamaktadır. Bunlar için ayrı veriler çekmemiz gerekmetedir.
Sql ile veri tabanından önceki kayıtı alma
SELECT * FROM tablo WHERE id < $id ORDER BY id DESC LIMIT 1
Sql ile veritabanından sonraki kayıtı alma
SELECT * FROM tablo WHERE id > $id ORDER BY id ASC LIMIT 1
PHP ile uygulaması
Php ile Mysql'de önceki ve sonraki kayıtı almak için basit bir class yapısı
PHP
class Post{
private $pdo;
public function __construct(){
$this->connect();
}
public function connect(){
try {
$this->pdo = new PDO('mysql:host=localhost;dbname=veritabaniveritabani;charset=utf8', 'kullaniciAdi', 'sifre');
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->pdo->query('SET NAMES utf8');
}catch (PDOException $e) {
echo 'Veritabanı bağlantısı başarısız oldu: ' . $e->getMessage();
}
}
public function onceki($id){
$sql = 'SELECT * FROM Tablo WHERE id < ? ORDER BY id DESC LIMIT 1';
$query = $this->pdo->prepare($sql);
$query->execute(array($id));
return $query->fetch();
}
public function sonraki($id){
$sql = 'SELECT * FROM Tablo WHERE id > ? ORDER BY id ASC LIMIT 1';
$query = $this->pdo->prepare($sql);
$query->execute(array($id));
return $query->fetch();
}
}
$class = new Post();
Codeigniter'la önceki ve sonraki kayıtları alan Model yapısı
PHP
Codeigniter ile önceki ve sonraki kayıt
class Post extends CI_Model{
function onceki($id){
$this->db->select("*");
$this->db->from("tablo");
$this->db->where("id < " . $id);
$this->db->order_by("id","desc");
$this->db->limit(1);
return $this->db->get()->row_array();
}
function sonraki($id){
$this->db->select("*");
$this->db->from("tablo");
$this->db->where("id > " . $id);
$this->db->order_by("id","asc");
$this->db->limit(1);
return $this->db->get()->row_array();
}
}
Kurduğum onca mail serverlar sonucunda ücretiz olarak en stabil şekilde ve kolay yönetilebilirlik konusunda Zimba Mail Server gönlümde taht kurdu. Centos 7 üzerine Zimbra 8.8.15 nasıl kurulacağını anlatacağım