Web Geliştirici  :: PHP, Kohana, JavaScript, Ajax, XHTML, XML, CSS, MySQL ve diğer web yazılım geliştirme teknolojileri hakkında faydalı bilgi ve teknikler
 

MySQL’de Sorgu İçine Açıklama Yazmak

Programlama dillerinde açıklamalar eklemek için çeşitli yapılar bulunur. Örneğin PHP’de tek satırlık ve çok satırlık açıklamalar şu şekilde kullanılır.

// tek satırlık açıklama
/*
çok
satırlık
açıklama
*/

MySQL sorguları içinde de benzer şekilde açıklamalar kullanmak mümkündür.

SELECT * FROM personel WHERE departman_id = 5 /* 5 : Muhasebe */ OR departman_id = 8 /* 8 : İnsan Kaynakları */

Bu sorgu aşağıdaki sorgu ile eşdeğerdir.

SELECT * FROM personel WHERE departman_id = 5 OR departman_id = 8

CSS’de Bir Kuralı Baskın Yapmak

Bir element içinde farklı yerlerde tanımlanmış CSS kurallarının çakışması halinde hangisinin geçerli olacağını elemente yakınlık belirler. Örneğin elementin style niteliği içindeki bir CSS kuralı, sayfanın baş tarafında <style></style> bloğu içinde bulunan bir CSS kuralına göre daha baskındır. Ancak !important ifadesi ile hangi kuralın baskın olacağına biz karar verebiliriz.

<style type="text/css">
.etiket { color: red; }
</style>
<span style="color: green;">merhaba</span>

Yukarıdaki durumda “merhaba” yazısının rengi yeşil olacaktır.

<style type="text/css">
.etiket { color: red !important; }
</style>
<span style="color: green;">merhaba</span>

Yukarıdaki durumda ise yazı rengi kırmızı olacaktır. !important ifadesi ile çakışma durumunda hangi kuralın baskın olacağını biz belirlemiş olduk.


Limitli Bir Sorgunun Limitsiz Halinin Sonuç Sayısını Bulmak

SQL’de bir sorgunun döndüreceği sonuç sayısı limit eki ile sınırlandırılır. Özellikle sayfalama yaparken bunu çok sık kullanırız. Örneğin

SELECT * FROM tablo WHERE id > 100 LIMIT 10

sorgusu bize şarta uyan ilk 10 kaydı getirecektir. Peki ama limit koymasaydık toplam kaç kayıt gelecekti? Toplam kayıt sayısını bulmak için aklımıza gelen ilk yol aynı sorguyu limitsiz olarak ikinci sefer işletmektir. Bunun yerine MySQL’in SQL_CALC_FOUND_ROWS ifadesi böyle bir durumda bizi ikinci bir sorgu işletmekten kurtarıyor.

SELECT SQL_CALC_FOUND_ROWS * FROM tablo WHERE id > 100 LIMIT 10

Yukarıdaki sorgunun limitsiz halinin sonuç sayısını bulmak için aşağıdaki yöntemi kullanıyoruz.

$toplam_kayit_sayisi_s = mysql_query(" SELECT FOUND_ROWS() AS adet ");
$toplam_kayit_sayisi_fa = mysql_fetch_array($toplam_kayit_sayisi_s, MYSQL_ASSOC);
$toplam_kayit_sayisi = $toplam_kayit_sayisi_fa['adet'];

Böylece yeni bir sorgu işletmeden toplam kayıt sayısını elde etmiş oluruz. Yukarıdaki işlemler, kendisinden önce SQL_CALC_FOUND_ROWS ifadesi geçen en sonuncu sorgu için uygulanacaktır.