Mysql’de tekrarlayan kayıtların silinmesi

Diğer, mysql Yorum Yok »

Mysql veritabanınızda bulunan bir tablodaki tekrarlayan kayıtları temizlemek/silmek istiyorsanız aşağıdaki yöntemi kullanabilirsiniz.

1. Öncelikle geçici bir tablo oluşturalım :

CREATE TABLE gecici_tablo LIKE asil_tablo

2. Oluşturduğumuz geçici tabloya tekil kayıtları aktaralım :

INSERT INTO gecici_tablo SELECT DISTINCT * FROM asil_tablo

3. Eski tablomuzu kaldıralım :

DROP TABLE asil_tablo

4. Geçici tablomuzun adını değiştirelim :

RENAME TABLE gecici_tablo TO asil_tablo

Js ve css dosyalarının browser tarafından cache’lenmesini engelleme

CSS, HTML/DOM, Javascript, php Yorum Yok »

Browser’lar varsayılan olarak javascript, css ve resimler gibi harici dosyaları önbelleğe (cache) alırlar. Genellikle bunu sayfa yeniden açıldığında daha hızlı yükleyebilmek amacıyla yaparlar. Bazen css veya javascript dosyalarımızın browser tarafından ön belleğe alınmasını istemeyiz. Bu sorunu aşağıdaki gibi kolayca halledebilirsiniz.

<link href="/stylesheet.css?<?php echo time(); ?>" rel="stylesheet" type="text/css" />

Aşağıdaki gibi bir sonuç alırsınız. time() fonksiyonu sonucunda elde edilen değer sürekli değişeceği için bu şekilde tanımlanan css veya javascript etiketi browser tarafından farklı bir dosya olarak algılanıp yeniden yüklenecektir.

<link href="/stylesheet.css?1293444465" rel="stylesheet" type="text/css" />

PHP ile css dosyalarının daha hızlı yüklenmesi

CSS, php Yorum Yok »

Web sitenizde birden fazla css dosyası kullanıyorsanız sayfanızın yüklenmesi uzun sürebilir. Aşağıdaki php örneğini kullanarak css dosyalarınızı sıkıştırıp tek bir dosyada birleştirebilirsiniz. Hem tek dosya olması hem de gereksiz boşlukların ve yorumların temizlenmesi css dosyalarınızın daha çabuk yüklenmesini sağlayacaktır.

<?php
header('Content-type: text/css');
ob_start("compress");
function compress($buffer) 
{
	/* yorumlar temizleniyor */
	$buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);
 
	/* tablar, boşluklar, satırlar temizleniyor */
	$buffer = str_replace(array("\r\n", "\r", "\n", "\t", '  ', '    ', '    '), '', $buffer);
	return $buffer;
}
 
/* css dosyalarınız */
include('stylesheet.css');
include('typography.css');
include('grid.css');
include('print.css');
include('ozel.css');
 
ob_end_flush();
?>

Sitenizin header bölümünde css dosyalarınız yerine oluşturduğunuz bu php dosyasından istekte bulunanız yeterli.

Metin içerisinde kelime vurgulama/renklendirme

php Yorum Yok »

Arama sonuçlarında aranan kelimeleri renklendirerek veya farklı bir biçimde göstererek vurgulamak isterseniz aşağıdaki fonksiyonu kullanabilirsiniz. Fonksiyon metin içerisindeki kelimeleri regular expression ile bulup değiştiriyor.

<?php
 
function vurgula($metin, $kelimeler)
{
    if (!is_array ($kelimeler) || empty ($kelimeler) || !is_string ($metin))
    {
        return false;
    }
 
    $kelimeler = implode ('|', $kelimeler);
    return preg_replace ('@\b('.$kelimeler.')\b@si', '<strong style="background-color:red">$1</strong>', $metin);
}
 
echo vurgula('Bu metindeki Linux, Apache, Php, Mysql kelimeleri renklendirilecek.', array ('Linux', 'Apache', 'Php', 'Mysql'));
 
?>

Php Url Kısaltma

php Yorum Yok »

Siz de bir twitter kullanıcısı iseniz bilirsiniz, yazacağınız mesajlar 140 karakterle sınırlıdır. Bu sebepten mesajlarınıza bir link eklemek istediğinizde sıkıntı yaşayabilirsiniz. Bu durumu aşmak için internette çeşitli url kısaltma servisleri mevcut. Bunlardan bazılarını api’leri yardımı ile php uygulamalarımızda kullanabiliriz.

İlk olarak üyelik gerektirmeyen Tinyurl.com ile başlayalım :

function getTinyUrl($url)
{
	return file_get_contents("http://tinyurl.com/api-create.php?url=".$url);
}
 
$turl = getTinyUrl('http://www.lampforweb.com/index.php/diger/php-url-kisaltma/');
echo $turl;
 
//http://tinyurl.com/337y28b

Tinyurl.com servisinin kullanımı kolay fakat alan adı nedeni ile karakter sayısında dezavantajları olabiliyor. Alternatif olarak bit.ly servisini kullanabiliriz. bit.ly için öncelikle üye olmanız ve http://bit.ly/a/your_api_key adresinden API kodunuzu almanız gerekiyor.

function getBitly($url)
{
	$content = file_get_contents("http://api.bit.ly/v3/shorten?login=YOURLOGIN&apiKey=YOURAPIKEY&longUrl=".$url."&format=xml");
	$element = new SimpleXmlElement($content);
	$bitly = $element->data->url;
	if($bitly)
	{
		return $bitly;
	}else
	{
		return '0';
	}
}
 
$burl = getBitly('http://www.lampforweb.com/index.php/diger/php-url-kisaltma/');
echo $burl;
 
//http://bit.ly/eWgVL4

Php’de hızlı ve kolay SQL sorguları için ezSQL

mysql, php 1 Yorum »

Php ile proje geliştiren herkesin mutlaka veritabanıyla az veya çok mutlaka işi oluyordur. En ufak veritabanı işlemi için bile bir kaç satır kod yazmak gerekir.

$sorgu = "SELECT * FROM projeler WHERE aktif='E' ";
$sonuc = mysql_query($sorgu);
if (mysql_num_rows($sonuc) > 0)
{
  $veri = mysql_fetch_object($sonuc);
}

Bir şekilde bu kodları uğraşıp yazmış olsak bile ileride projemiz için kullandığımız veritabanı uygulamasını değiştirmek istediğimizde bütün veritabanı kodlarında php komutlarını belli bir veritabanı uygulamasına göre kullandığımız için neredeyse tüm kodları yeniden yazmamız gerekecektir. (mysql_query, mysql_fetch_object gibi)

Peki ne yapmalıyız?

Hem kod yazımını kolaylaştırmak hemde düzgün bir kod yapısı sağlamak hemde ileriye dönük bir kod yapısı kurmak için özel bir veritabanı sınıfı veya fonksiyonlar kullanılabilir. Bu yapıyı ister kendiniz oluşturun isterseniz hazır kütüphanelerden faydalanın. Ama mutlaka böyle bir yapı kullanın.

ezSQL

ezSQL size böyle bir yapıyı kolayca kullanabileceğiniz bir şekilde sunuyor. Bir çok veritabanı programını destekliyor ezSQL. Aynı zamanda wordpress’in veritabanı sınıfı olan wpdb ezSQL kullanılarak geliştirilmiştir.

Yukarıdaki veritabanı işlemlerini ezSQL ile yazmak istesek aşağıdaki gibi bir satır yeterli olacaktır.

$veri = $db->get_row("SELECT * FROM projeler WHERE aktif = 'E' ");

Bu kadar basit :)

ezSQL Kullanımı

Öncelikle bu adresten ezSQL kütüphanesini indiriyoruz. İndirdiğiniz zip dosyasını proje dizinine açın. ezSQL’i projemizde kullanabilmel için iki dosyaya ihtiyacımız var birincisi ezSQL çekirdek dosyası (ez_sql_core.php) diğeri ise kullandığımız veritabanı uygulamasına ait dosya. (mysql için ez_sql_mysql.php)

Şimdi veritabanı işlemleri için ezSQL nesnesini oluşturalım.

include_once "ez_sql/shared/ez_sql_core.php";
include_once "ez_sql/mysql/ez_sql_mysql.php";
$db = new ezSQL_mysql('db_user','db_password','db_name','db_host');

Artık $db nesnesini kullanarak tüm veritabanı işlemlerimizi gerçekleştirebiliriz.

Sorgu örnekleri

Tabloya kayıt ekleme. Bu metod geriye Insert ID’yi döndürür.

$db->query("INSERT INTO projeler (id, proje_adi, baslangic_tarihi, aktif) VALUES (NULL,'ezSQL Sınıfı', NOW(), 'E')");

Kayıt güncelleme.

$db->query("UPDATE projeler SET aktif = 'H' WHERE id= '5' ");

Tek satır veri alma

$veri = $db->get_row("SELECT proje_adi, baslangic_tarihi FROM projeler WHERE id = 5");
 
echo $user->name;
echo $user->email;

Tek bir değer alma

$deger = $db->get_var("SELECT count(*) FROM projeler WHERE aktif= 'E' ");
 
echo $deger;

Birden fazla satır kayıt alma

$sonuclar = $db->get_results("SELECT proje_adi, baslangic_tarihi FROM projeler");
 
foreach ( $sonuclar as $veri )
{
  echo $veri->proje_adi;
  echo $veri->baslangic_tarihi;
}

Diğer örnekler ve daha detaylı bilgi için burayı kullanabilirsiniz.

Umarım projelerinizi daha kolay ve hızlı bir şekilde yürütmenizi sağlayacak bir yazı olmuştur.

Zen Coding / Zen Kodlama

CSS, HTML/DOM Yorum Yok »

Zen kodlama kullandığınız editörde, html kodlarını ve CSS kodlamada sıkça kullandığımız id, class ve style gibi tanımlamaları çok kolay bir şekilde, çok ciddi bir zaman kazancı sağlayacak şekilde yazmamızı sağlayan bir eklenti/araç. Bir çok editör doğal olarak veya eklentilerle zen kodlamayı destekliyor. Yakın zamanda da tüm editörlerin destekleyeceğini düşünüyorum.

Peki nasıl bir şeydir bu zen kodlama ?

html:xt>div#header>div#logo+ul#nav>li.item-$*5>a

Yukarıdaki satırı editörümüze yazıp zen kodlamayı tetikleyecek kısayolu kullandığımızda (genellikle Ctrl+,) aşağıdaki gibi bir html kodu elde ediyoruz.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
	<title></title>
	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
</head>
<body>
	<div id="header">
		<div id="logo"></div>
		<ul id="nav">
			<li class="item-1"><a href=""></a></li>
			<li class="item-2"><a href=""></a></li>
			<li class="item-3"><a href=""></a></li>
			<li class="item-4"><a href=""></a></li>
			<li class="item-5"><a href=""></a></li>
		</ul>
	</div>
</body>
</html>

Süper değil mi! :)

Bir de bunu izleyin :

Zen kodlamayı doğal olarak destekleyen editörlerden bazıları : Aptana/Eclipse, TextMate (Mac), Coda (Mac), Komodo IDE, NotePad++, PSPad.

Eklenti kurarak kullanabileceğiniz editörlerden bazıları: Dreamweaver, Gedit, Ultra Edit, Visual Studio, NetBeans.

Örneği görmek ve denemeler yapmak için online demo adresine bakabilirsiniz. Projenin web sitesi için burdan, kullanımını öğrenmek için burdan.

tar Komutunun Kullanımı

linux Yorum Yok »

Linux komut satırında tar komutunun kullanım örnekleri. İhtiyaç duyduğunuzda “Nasıldı yaa?” diye düşünmeyin.

tar -cvf arsiv.tar arsiv/

-c (create) arsiv dizinini tar dosyası olarak sıkıştırır. Aslında tam olarak sıkıştırma yapmaz çok düşüktür sıkıştırma oranı. Dosyaları bir araya toplar desek daha doğru olur. -v parametresi işlem yapılan dosyaların listelenmesini sağlar. Dosyaları görmek gerekmiyorsa kullanmasanız da olur.

tar -czvf arsiv.tar.gz arsiv/

-z arsiv dizinini gzip kullanarak önce tar’layıp sonra sıkıştırır.

tar -cjvf arsiv.tar.bz2 arsiv/

-j arsiv dizinini bzip kullanarak önce tar’layıp sonra sıkıştırır. bzip gzip ‘e göre uzun sürer ama daha iyi sıkıştırma yapar. Büyük dosyalarda kullanılması tavsiye edilir. Küçük boyutlu dosyalarda veya metin sıkıştırmalarında gzip daha iyi sonuç verebilir. Ayrıca daha hızlıdır.

tar -xvf arsiv.tar -C /home/arsiv

-x (exract) parametresi sıkıştırdığımız tar dosyalarını geri açmamızı sağlar. Verilen komut arsiv.tar dosyasını /home/arsiv dizinine açar. -C parametresi istediğiniz bir dizine açmak için kullanılır. Kullanılmadığı taktirde dosyanın bulunduğu dizine açılır.

tar -xzvf arsiv.tar.gz -C /home/arsiv

gzip’le sıkıştırılmış tar dosyasını istenilen dizine açar.

tar -xzvf arsiv.tar.bz2 -C /home/arsiv

bzip’le sıkıştırılmış tar dosyasını istenilen dizine açar.

tar -tf arsiv.tar

arşivi açmadan sadece içeriğini görmek için

tar -rf arsiv.tar ornek.txt

arşive dosya ilave eder

Netbeans 6.8 Html Error

open source, php Yorum Yok »

Netbeans editör kullananlar netbeans’ın 6.5.1 versiyonundan sonra html kodlarında “unknown html tag” gibi bir hata alabilirler. Bu hatadan kurtulmak için netbeans 6.8′i kurduktan sonra kurulum dizinindeki “/home/netbeans-6.8/etc/netbeans.conf” dosyasını açıp “netbeans_default_options=” ile başlayan satırın sonuna “–locale en:US” seçeneğini ekleyin.

netbeans_default_options="-J-client -J-Xverify:none -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m -J-Dapple.laf.useScreenMenuBar=true -J-Dsun.java2d.noddraw=true --locale en:US"

Grub Loader Bozuldu! Ne Yapmalıyım?

linux, open source Yorum Yok »

Çoklu işletim sistemi kullanırken (linux + windows gibi) veya çeşitli işlemlerden dolayı grub loader’ı kaybettiğiniz veya bozduğunuz durumlar olabilir. Bu durum en çok da linux üzerine windows işletim sistemi kurulduğunda gerçekleşir. Bu durumda da bilgisayarınıza erişemezsiniz. Paniğe gerek yok. Dosyalarınız ve işletim sistem(ler)iniz olduğu gibi duruyor. Aşağıda anlatılan bir kaç basit işlemden sonra grub boot loader yeniden çalışacaktır.

Öncelikle buradaki grub loader iso dosyasını indirip bir cd ye yazarak kendimize bir boot cd si hazırlayalım. (1.2 MB) Bu cd yardımı ile kaybettiğimiz grub yerine bu cd deki grub loader ile sistem açılışını yapacağız.

Not: Elinizde Ubuntu Live CD’niz varsa bu CD ile boot yaptıktan sonra açılan live işletim sisteminde de aşağıdaki işlemleri yapabilirsiniz.

Boot cd sini hazırladıktan sonra bilgisayarımızı bu cd ile açıyoruz. Açılışta yine bir grub loader ekranı çıkacak ve burdan ilk seçeneği seçip mevcut işletim sistemimizle bilgisayarımızın açılmasını sağlayacağız. Kendi işletim sisteminizle oturum açtıktan sonra komut satırında

# sudo grub

komutu ile grub komut satırını başlatıyoruz. Şimdi çöken grub loader’ı tamir edelim. Grub komut satırında iken

grub> root (

yazdıktan sonra tab tuşuna basıyoruz. Parantezden önceki boşluk önemli. Bilgisayarımızdaki takılı disk sayısı bir tane ise burası hd0 şeklinde tamamlanacaktır veya aşağıda diğer seçenekler listelenecektir. (hd0,hd1.. gibi) Burada önemli nokta işletim sisteminizin hangi diskte olduğunu bilmeniz. Bu ilk parametre genellikle hd0 dır. Komut satırında artık

grub> root (hd0,

yazıyor olmalı. Biz yine tab tuşuna basıyoruz ve diskimizdeki bölümleri ve dosya sistemlerinin listelenmesini sağlıyoruz.

grub> root (hd0,
    Possible partitions are:
    Partition num: 0,  Filesystem type unknown, partition type 0x7
    Partition num: 4,  Filesystem type unknown, partition type 0x82
    Partition num: 5,  Filesystem type is ext2fs, partition type 0x83

Sistemi başlatmak istediğimiz işletim sistemine göre buradaki disk bölümünün id sini 2. parametre olarak veriyoruz. Ext2 formatındaki linux işletim sistemi için id si 5 olan bölüm seçilecek.

grub> root (hd0, 5);

şeklinde komutu yazıyoruz. Daha sonra bu ayarların geçerli olması için

grub> setup (hd0);

komutunu veriyoruz. Daha sonrada

grub> quit

komutu ile çıkış yapıyoruz. Artık sistemi yeniden başlatabiliriz.

# sudo reboot

Takılı olan boot cd sini çıkarıyoruz ve sistemimiz normal bir şekilde açılıyor. (öyle olması gerekiyor!)

Lampforweb 2007 Tüm hakları saklıdır. Tema N.Design Studio
İçerik RSS Yorum RSS Giriş