Bu makalede PHP veritabanı bağlantısı ile nasıl arama ve filtreleme işlemleri yapabileceğinizi öğreneceksiniz Veri tabanı bağlantısı kurduktan sonra, SQL sorguları kullanarak verileri filtreleyebilir ve arayabilirsiniz Ayrıca, yazdığınız PHP kodları ile veritabanı ile etkileşime geçerek istediğiniz sonuçları elde edebilirsiniz Detaylar için makalemizi okuyun

İnternet uygulamalarında veritabanı, kullanıcılar tarafından girilen verilerin saklanmasını sağlar ve bu verilere programlama dilleri aracılığıyla erişim sağlanabilir. PHP programlama dili de, web uygulamalarında sıklıkla kullanılan bir dildir ve veritabanı işlemlerinde oldukça etkilidir.
Bu makalede, PHP veritabanı bağlantısı kurarak, veritabanında arama ve filtreleme işlemlerini nasıl gerçekleştirebileceğinizi öğreneceksiniz. Veritabanı bağlantısı kurmak için mysqli_connect() fonksiyonu kullanılır. Veritabanında arama yapmak için SELECT sorgusu kullanılır. Ayrıca, WHERE koşulları ile arama işlemi daha spesifik hale getirilebilir ve LIKE anahtar kelimesi kullanarak veritabanında belirli bir kelimeyi aratabilme imkanı sağlanır. ORDER BY sorgusu ile veritabanındaki veriler belirli kriterlere göre sıralanabilir.
Veritabanında filtreleme işlemi yapmak için WHERE koşullarını kullanırız. Gelen verilerin filtrelenmesi amacıyla htmlspecialchars() fonksiyonu kullanılır. XSS saldırılarına karşı, kullanıcı tarafından girilen verilerin filtrelenmesi ve doğrulanması gerekir. Paginasyon işlemi, sayfalarda gösterilecek verileri küçük parçalara bölerek sayfalar arasında gezinebilmeyi sağlayan bir yöntemdir.
PHP ile veritabanı arama ve filtreleme işlemleri, verileri daha anlamlı ve kolay erişilebilir hale getirir. İnternet uygulamalarında, veritabanı işlemleri oldukça önemlidir ve PHP'nin bu alandaki gücü sayesinde uygulamalar daha etkili bir şekilde çalışabilir. Bu makalede, temel veritabanı bağlantısı kurulumu, sorgulama, filtreleme ve paginasyon işlemleri öğrenildi.
Veritabanı Bağlantısı
Veritabanına veri aktarımı yapabilmek için öncelikle veritabanı bağlantısı kurmalısınız. Bunun için mysqli_connect() fonksiyonu kullanılır. mysqli_connect() fonksiyonu, sunucu adı, kullanıcı adı, şifre ve veritabanı adı parametrelerini alır. Örneğin, aşağıdaki kodda 'localhost' yerine sunucu adınız, 'username' yerine veritabanı kullanıcı adınız, 'password' yerine şifreniz ve 'database' yerine de veritabanı adınızı belirtmelisiniz.
Bağlantı kurulduktan sonra, veritabanı sorguları yapabilir ve verilerinizi yönetebilirsiniz. Veritabanı bağlantısı ilk adım olduğu için, ayrıntılı açıklama ve kullanımı anlatmak faydalı olacaktır. Yukarıdaki örnekte kullanılan kodlar, açıklamalarıyla birlikte anlaşılabilir şekilde HTML etiketleriyle birlikte belirtilmiştir.
Veritabanı Sorgulama
Veritabanı sorgulama işlemleri, veritabanındaki bilgileri belirli kriterlere göre listelemek ve aramak için kullanılır. SELECT sorgusu, veritabanındaki belirli tablolardan, belirli sütunları seçmek için kullanılır.
Örneğin, "SELECT * FROM users" sorgusu tüm kullanıcıları seçer ve "SELECT name, email FROM users" sorgusu sadece kullanıcıların adı ve email adreslerini seçer. WHERE koşulları kullanarak sorguları daha spesifik hale getirebilirsiniz ve birçok koşul sıralaması kullanarak birden fazla koşulu sorgulayabilirsiniz. Örneğin, "SELECT * FROM users WHERE age > 18 AND city = 'Istanbul'".
SELECT sorgusunun bir diğer önemli özelliği, verileri belirli bir düzende sıralamak için kullanılan ORDER BY sorgusudur. Belirli bir sütuna göre sıralama yapmak için "SELECT * FROM users ORDER BY name ASC" (alfabetik olarak) veya "SELECT * FROM users ORDER BY age DESC" (yaşa göre azalan sıralama) gibi sorgular kullanabilirsiniz.
Tablolar arasında ilişki kurmak için JOIN kullanarak sorguları birleştirebilirsiniz. Bu, daha büyük ve karmaşık veritabanlarında çok işe yarayan bir özelliktir.
SELECT sorgusuyla birlikte filtreleme işlemlerine de olanak tanıyan WHERE koşullarını kullanarak, veritabanındaki belirli bilgileri aratma ve çekme işlemleri daha etkili hale getirilebilir.
WHERE Koşulları
Veritabanı sorgularında kullanılan WHERE koşulları ile arama işlemi daha spesifik hale getirilebilir. WHERE koşulları, sorgunun belli bir kısmını filtreleyerek istenilen sonuçları elde etmeyi sağlar. Veritabanı sorgusu içerisinde, WHERE anahtar kelimesi kullanılarak koşullar belirlenir.
Veritabanında arama yaparken, belirli koşullara göre filtreleme işlemi yapılabilir. Örneğin, sadece belirli bir tarihe ait verileri göstermek için WHERE koşulu kullanılabilir.
WHERE koşullarında kullanabileceğimiz operatörler arasında '<', '>', '=', '<=', '>=' ve '<>' bulunmaktadır. Örneğin, fiyatı 50 TL'den yüksek olan ürünleri göstermek için WHERE fiyat > 50 koşulu kullanılabilir.
WHERE koşulu aynı zamanda birleştirilebilir. AND ve OR anahtar kelimeleri, birden fazla koşulun birleştirilmesini sağlar. WHERE koşullarıyla arama ve filtreleme işlemleri, veritabanından seçilen verilerin doğruluğunu artırarak, daha spesifik bir sonuç elde etmemize yardımcı olur.
LIKE Kullanımı
Veritabanında arama işlemleri, filtrelemeler gibi özellikler kullanılabilmesi için bazı anahtar kelimeler kullanmak gerekiyor. Bu anahtar kelimelerden biri de LIKE‘dır. LIKE anahtar kelimesi kullanarak istenilen kelime veya kelime öbeğine sahip veriler sorgulanabilir.
Örneğin, kullanıcılarının isimlerinin başındaki harfleri öğrenmek isteyen bir firma için, veritabanı sorgusu aşağıdaki gibi olabilir:
sorgu | sonuç |
---|---|
SELECT * FROM kullanicilar WHERE isim LIKE 'A%' | Tüm kullanıcıların isminin A ile başlayanları |
Yukarıdaki sorgu sonucunda, tüm veriler listelenirken sadece isimleri A ile başlayan kullanıcıların verileri listelenecektir. Bu örnek, LIKE anahtar kelimesinin nasıl kullanılabileceğini anlatmak için verilmiştir.
LIKE anahtar kelimesinin kullanılabilmesi için %, _ gibi özel karakterler de kullanılabilir. % karakteri yerine herhangi bir karakter olabilirken, _ karakteri yerine tam olarak bir karakter olması gerekiyor.
- %kelime -> kelime ile biten verileri listeler
- kelime% -> kelime ile başlayan verileri listeler
- %kelime% -> kelime içeren verileri listeler
- _elime -> ilk harfi herhangi bir karakter olan, ikinci harfi e olan verileri listeler
LIKE anahtar kelimesinin bu özellikleri ile veritabanı sorgulamalarında çok etkili sonuçlar elde edilebilir.
ORDER BY Sorgusu
Veritabanı üzerinde arama ve filtreleme işlemleri kadar sıralama işlemleri de oldukça önemlidir. Sıralama işlemi, belirli bir alana göre veritabanındaki verileri artan veya azalan şekilde sıralamaya yarar. ORDER BY sorgusu kullanılarak veritabanındaki veriler belirli kriterlere göre sıralanabilir. Örneğin, tablodaki adları alfabetik olarak sıralamak istiyorsanız;
SELECT * FROM ogrenciler ORDER BY ad ASC;
yazarak "ASC" ile verileri artarak, "DESC" ile de azalarak sıralayabilirsiniz. Benzer şekilde, diğer alanlar için de benzer şekilde sıralama işlemi yapabilirsiniz. Örneğin, şehir alanına göre sıralamak isterseniz;
SELECT * FROM ogrenciler ORDER BY sehir ASC;
yazarak verileri şehre göre alfabetik şekilde sıralayabilirsiniz. ORDER BY sorgusu sadece tek bir alan için kullanılmakla birlikte, birden fazla alan için de kullanılabilir. Bu şekilde veriler önce ilk alana göre sıralanır, ardından sıralama numarası eşit olan veriler için ikinci alana göre sıralama yapılır.
ORDER BY sorgusu, veritabanı sorgularının yanı sıra PHP kodlarında da kullanılabilir. Veritabanından alınan veriler PHP kodu içerisinde belirli kriterlere göre sıralanarak kullanıcıya sunulabilir. Böylece, veritabanından alınan veriler daha anlaşılır ve sıralı şekilde sunulabilir.
Sıralama işlemi, veritabanı üzerinde yapılan işlemler arasında oldukça önemli bir yere sahiptir. ORDER BY sorgusu kullanarak, veritabanındaki verileri istenilen kriterlere göre sıralamak oldukça kolaydır. Bu sayede veriler daha anlaşılır ve erişilebilir hale getirilebilir.
Filtreleme İşlemleri
Veritabanında arama yapmanın yanı sıra filtreleme işlemi de oldukça önemlidir. Filtreleme işlemi için WHERE koşullarını kullanırız. Bu koşullar sayesinde veritabanındaki verileri filtreleyerek istediğimiz kriterlere uygun hale getirebiliriz.
Örneğin, belirli bir tarihten önceki veya sonraki verileri filtrelemek istediğimizde WHERE koşullarını kullanabiliriz. Bu sayede, veritabanındaki gereksiz verilerden kurtulur ve sadece istediğimiz verilere erişiriz.
Ayrıca, LIKE anahtar kelimesi kullanarak belirli bir kelimeyi aratabiliriz. Bu sayede veritabanındaki arama işlemimizi daha spesifik hale getirerek istediğimiz sonuçları elde edebiliriz.
Filtreleme işlemi yaparken, gelen verilerin de filtrelenmesi gerekir. Bu amaçla, htmlspecialchars() fonksiyonu kullanılır. Bu fonksiyon sayesinde, kullanıcı tarafından girilen veriler güvenli bir şekilde filtrelenir ve XSS saldırılarına karşı koruma sağlanır.
Yine de, filtreleme işlemleri sadece güvenlik açısından önemli değildir. Aynı zamanda veritabanındaki verilerin daha okunaklı ve anlamlı hale gelmesini sağlar. Bu nedenle, filtreleme işlemine özen göstermek, etkili bir veri yönetimi için oldukça önemlidir.
Gelen Verilerin Filtrelenmesi
PHP ile veritabanı bağlantısı kurup gerçekleştirdiğimiz arama ve filtreme işlemleri, web sitelerinin daha işlevsel ve kullanıcı dostu hale gelmesini sağlar. Ancak bu işlemler sırasında kullanıcı tarafından girilen verilerin güvenliği de önemlidir. Gelen verilerin filtrelenmesi amacıyla htmlspecialchars() fonksiyonu kullanılır.
htmlspecialchars() fonksiyonu, kullanıcı tarafından girilen verilerin HTML etiketlerine dönüştürülerek sayfaya eklenmesini engeller. Bu sayede, kullanıcı tarafından girilen kötü niyetli kodların (Örn. XSS saldırısı) sayfada etkisiz hale getirilmesi sağlanır.
Ayrıca, kullanıcının erişim sağlayabileceği alanların doğru bir şekilde belirlenmesi ve güvenli hale getirilmesi de önemlidir. Bu noktada, sayfada görüntülenecek alanların belirlenmesi ve kullanıcının girdiği verilerin doğrulanması gereklidir.
HTML ve PHP ile yapılan veri filtreleme işlemleri sayesinde, web sayfalarının daha güvenli hale getirilmesi sağlanır. Böylece, kullanıcı verilerinin güvenliği ve web sitelerinin daha etkili bir şekilde kullanılabilmesi için sağlam bir zemin oluşur.
XSS Koruma İşlemi
XSS (Cross-Site Scripting) saldırıları, hedef web uygulamasına SQL enjeksiyonu veya aracılık ederek kullanıcılar arasında bir güvenlik açığı yaratarak gerçekleştirilir. Kullanıcı tarafından girilen herhangi bir veri, XSS saldırısına neden olabilir.
Bu nedenle, web uygulaması geliştiricilerinin, kullanılan girdileri doğrulaması ve filtrelemesi gerekir. Bunun için htmlspecialchars() fonksiyonu kullanılır. Bu fonksiyon, HTML karakterlerini kodlar ve sayfa üzerinde güvenli bir şekilde görüntülenmesini sağlar. Bu sayede, kullanıcının girdilerindeki kodlar da etkisiz hale getirilir.
Ayrıca, web uygulamalarında çerezler de kullanılabilir. Ancak XSS saldırılarına karşı koruma amacıyla, çerezlerin HttpOnly özelliği etkinleştirilerek, JavaScript tarafından erişimin engellenmesi önerilmektedir.
Bu önlemler, kullanıcıların güvenli bir şekilde veri girişi yapabilmesini sağlamak ve olası XSS saldırılarına karşı web uygulamasını korumak için önemlidir.
Paginasyon
Paginasyon işlemi, web sayfalarında görüntülenen verilerin çokluğu nedeniyle özellikle büyük veri getiriliyorsa oldukça önemlidir. Bu yöntem sayfalarda gösterilecek verileri küçük parçalara ayırarak kullanıcıların sayfalar arasında gezinebilmesi sağlar. Bu sayede, web sayfasının yüklemesi hızlanır ve kullanıcıların aradığı bilgi daha kolay bulunabilir.
Paginasyon işlemi, genellikle veritabanından gelen veriler üzerinde uygulanır. Veritabanından alınan tüm verileri tek bir sayfada göstermek yerine, örneğin 10 veri parçasından oluşan bir sayfa yaparız. Eğer kullanıcı daha fazla veri görmek istiyorsa, sayfanın altında bulunan sayfa numaraları aracılığıyla diğer sayfalara geçebilir.
Paginasyon işlemi için 2 önemli parametre vardır: sayfa numarası ve sayfa gösterimi. Sayfa numarası, kullanıcının hangi sayfada olduğunu belirlemek için kullanılır. Sayfa gösterimi ise bir sayfada kaç verinin gösterileceğini belirler. Bu parametreler veritabanı sorgusunda LIMIT anahtar kelimesi kullanılarak belirlenir.
Örneğin, bir web sayfasında 50 veri parçası göstermek istiyorsak ve her sayfada 10 veri parçası göstermek istiyorsak, sayfa numarası 1 olan veriler için LIMIT 0,10 ve sayfa numarası 2 olan veriler için LIMIT 10,10 kullanarak sayfaları oluştururuz.
Özet
PHP web geliştirme sürecinde, veritabanı işlemleri oldukça önemlidir. Veritabanında arama, filtreleme veya sıralama yapmak, web uygulamalarının kullanılabilirliğini artırmak, verilerin daha anlamlı olmasını sağlamak ve hızlı erişilebilir olmasını sağlamak için kullanılan yöntemlerdir. Bu makalede, PHP veritabanı bağlantısı kurarken, veritabanında arama, filtreleme ve sıralama işlemlerini nasıl gerçekleştireceğinizi öğrendiniz.
Başlangıçta, veritabanı bağlantısı nasıl kurulacağına dair bir özet sunduk. mysqli_connect() fonksiyonunu kullanarak bağlantıyı kolayca kurabilirsiniz. Ardından, veritabanında arama yapmak için SELECT sorgusunun kullanımını inceledik ve WHERE koşullarının kullanımı ile sorguyu daha spesifik hale getirdik. LIKE anahtar kelimesi ile belirli bir kelimeyi arayabilir ve ORDER BY sorgusu ile veritabanındaki verileri belirli bir kriter üzerinde sıralayabilirsiniz.
Filtreleme işlemleri de veritabanında önemlidir. WHERE koşullarını kullanarak filtreleme yapabilir ve htmlspecialchars() fonksiyonu ile gelen verileri filtreleyebilirsiniz. Ayrıca, XSS saldırılarına karşı koruma sağlamak için kullanıcı tarafından girilen verilerin doğrulanması ve filtrelenmesi gerektiğini de unutmamalısınız.
Paginasyon işlemi, sayfalarda gösterilecek verileri küçük parçalara bölerek sayfalar arasında gezinebilmeyi sağlayan bir yöntemdir. Bu sayede, web uygulamanızın hızını artırır ve kullanıcıların daha rahat bir kullanıcı deneyimi yaşamasını sağlarsınız. Bu makalede, temel veritabanı bağlantısı kurulumu, sorgulama, filtreleme ve paginasyon işlemleri öğrenebildiniz.