Mysql Like, belirttiğimiz tabloda ve sütunda arama yapmanıza olanak tanır. Eşleşen tüm içerikleri sıralar. Like, Mysql veritabanı kullanan sitelerde arama sonuçlarını gösterme konusunda yardımcı olur. Konu altına birde PDO ile Arama kodlaması ekleyeceğim.
SELECT * FROM post WHERE post_title LIKE "aranacakmetin" ....
post_title kısmında aranacakmetin kelimesiyle eşleşen tüm içerikleri listeler. Fakat arama böyle değildi demi :) direk eşleşmeyecek, içerenler çıkacaktı karşımıza. Evet efenim hemen ona geçelim o vakit. Şimdi basitce anlamanız için bir veritabanı görüntüsü oluşturalım;
+-------------+----------------+-----------------+-----------------+
| post_id | post_title | post_content | post_date |
+-------------+----------------+-----------------+-----------------+
| 0 | Merhaba Dünya | blabla | 2007-05-21 |
+-------------+----------------+-----------------+-----------------+
| 1 | Sardüya ekmek | blabla | 2007-05-21 |
+-------------+----------------+-----------------+-----------------+
| 2 | Eledim Herşeyi | blabla | 2007-05-21 |
+-------------+----------------+-----------------+-----------------+
Şimdide bu veritabanının post_title sütununda sonu "ya" içeren sonuçları elde etmek için sorgumuzu yazalım.
SELECT * FROM post WHERE post_title LIKE "%ya"....
Ya kelimesi herhangi bir yerde olsa da sonuçlarda listelensin istiyorsak eğer önüne koyduğumuz % işareti arkasına da koymamız gerekir.
SELECT * FROM post WHERE post_title LIKE "%ya%"....
Aynı şekil "ya" ile başlayan sonuçları listeletmek istersek eğer bu sefer sadece arka kısmına koymamız yeterli olacak.
SELECT * FROM post WHERE post_title LIKE "ya%"....
Mysql veritabanında arama sorgusu bu şekildedir. Biz bunu PDO ile birleştirip daha net anlamanızı sağlayalım.
//Veritabanı bağlantısını felan yapmışız ve yukardaki tablo örneğindeki gibi
// "ya" içerenleri bulacağız.
$sorgu="%ya%";
$sql=$db->prepare("SELECT * FROM post WHERE post_title LIKE ?");
$sql->execute(array($sorgu));
$sonusayisi=$sql->rowCount(); // 2 olarak karşımıza çıkar sonuç sayısı
// Eğer sonuç varsa döngüye sokalım ve başlığı yazdıralım ne dersin :)
if($sonucsayisi):
while($row=$sql->fetch(PDO::FETCH_OBJ)):
echo $row->post_title;
endwhile;
endif;
//Merhaba DünyaSarduya Salça olarak ekrana basacaktır.
Umarım kullanımı konusunda herşey kafanızda netleşmiştir.
Bu yazıya henüz bir yorum yapılmamış, hemen bir tane yapmak ister misin ?