Php 8 Uygulama: Arama Formu

Php 8 Uygulama: Arama Formu

PHP 8'de bir arama formu, kullanıcının belirli bir kriter girerek veri araması yapmasını ve PHP'nin bu arama kriterlerine göre sonuçları işlemesini sağlar. Arama formu, genellikle GET yöntemiyle yapılır, çünkü arama sonuçları URL'de görünür ve paylaşılabilir olur. Aşağıda, bir arama formunun nasıl yapılacağına dair adım adım bir örnek verilmiştir.

1. HTML Arama Formu Oluşturma

İlk adım, HTML'de bir arama formu oluşturmaktır. Bu form, kullanıcının arama yapabilmesi için bir metin alanı içerir. Arama formunun verilerini GET yöntemiyle PHP dosyasına göndereceğiz.

HTML Formu:

<!DOCTYPE html> <html lang="tr"> <head> <meta charset="UTF-8"> <title>Kitap Arama Formu</title> </head> <body> <h1>Kitap Arama</h1> <form action="search.php" method="get"> <label for="search">Aranacak Kitap:</label> <input type="text" id="search" name="search" placeholder="Kitap adı girin" required> <br> <br> <input type="submit" value="Ara"> </form> </body> </html>

Bu formda kullanıcıdan kitap adı isteniyor. Kullanıcı formu doldurup "Ara" butonuna bastığında form verisi, search.php dosyasına GET yöntemi ile gönderilir.

2. PHP ile Arama İşlemini Yapma

Formdan gelen verileri işlemek için search.php dosyasında veriyi alacağız ve basit bir arama işlemi gerçekleştireceğiz. Burada basit bir örnekle, önceden tanımlanmış bir kitap listesinde arama yapacağız.

search.php:

<?php if (isset($_GET['search'])) { $searchTerm = htmlspecialchars(trim($_GET['search'])); // Kullanıcıdan gelen arama terimi // Örnek kitap listesi (Veritabanına bağlanmadık, ancak veritabanı ile de çalışabilir) $books = [ "PHP ile Web Geliştirme", "PHP 8 Yenilikleri", "Laravel ile Uygulama Geliştirme", "Modern JavaScript", "Python Programlama", "Veri Bilimi ile Python", "HTML ve CSS Eğitimi" ]; // Arama sonuçlarını tutacak dizi $results = []; // Kitap listesinde arama terimine göre arama yap foreach ($books as $book) { if (stripos($book, $searchTerm) !== false) { $results[] = $book; // Eşleşen kitapları sonuçlara ekle } } // Sonuçları göster echo "<h2>Arama Sonuçları:</h2>"; if (count($results) > 0) { echo "<ul>"; foreach ($results as $result) { echo "<li>" . $result . "</li>"; } echo "</ul>"; } else { echo "Sonuç bulunamadı."; } } ?>

3. Kod Açıklaması

  • GET Yöntemi ile Veriyi Alma: isset($_GET['search']) ile kullanıcının arama formuna bir veri girip girmediğini kontrol ediyoruz. htmlspecialchars() ve trim() fonksiyonlarıyla kullanıcının girdiği veriyi işleyip güvenli hale getiriyoruz.

  • Örnek Kitap Listesi: $books dizisi, sabit bir kitap listesi içeriyor. Gerçek bir uygulamada, bu liste bir veritabanından çekilebilir.

  • Arama İşlemi: stripos() fonksiyonu ile arama terimi ve her bir kitap ismi karşılaştırılıyor. Bu fonksiyon büyük/küçük harf duyarlılığı olmadan arama yapar. Arama terimi bulunan kitaplar $results dizisine eklenir.

  • Sonuçların Gösterilmesi: Eğer sonuç bulunduysa, bunlar bir liste olarak gösterilir. Eğer hiçbir sonuç bulunmazsa, "Sonuç bulunamadı" mesajı gösterilir.

4. Sonuçlar

Eğer kullanıcı PHP terimi ile bir arama yaparsa, sonuç sayfasında şu gibi sonuçlar gösterilecektir:

Örnek URL:

http://example.com/search.php?search=PHP

Sonuç:

Arama Sonuçları: - PHP ile Web Geliştirme - PHP 8 Yenilikleri

Eğer hiçbir sonuç bulunmazsa, sonuç şu şekilde olacaktır:

Sonuç bulunamadı.

5. Veritabanı ile Çalışma

Eğer arama işlemini bir veritabanı ile yapmak istiyorsanız, PDO veya MySQLi gibi veritabanı kütüphanelerini kullanabilirsiniz. Aşağıda basit bir MySQL arama sorgusu örneği verilmiştir:

<?php if (isset($_GET['search'])) { $searchTerm = htmlspecialchars(trim($_GET['search'])); // Veritabanı bağlantısı (PDO kullanarak) $dsn = 'mysql:host=localhost;dbname=library'; $username = 'root'; $password = ''; try { $pdo = new PDO($dsn, $username, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // SQL sorgusu $stmt = $pdo->prepare("SELECT * FROM books WHERE title LIKE ?"); $stmt->execute(["%" . $searchTerm . "%"]); // Sonuçları alma $results = $stmt->fetchAll(PDO::FETCH_ASSOC); echo "<h2>Arama Sonuçları:</h2>"; if ($results) { echo "<ul>"; foreach ($results as $book) { echo "<li>" . htmlspecialchars($book['title']) . "</li>"; } echo "</ul>"; } else { echo "Sonuç bulunamadı."; } } catch (PDOException $e) { echo "Veritabanı hatası: " . $e->getMessage(); } } ?>

Bu örnek, veritabanında kitapları aramak için PDO kullanır. Kullanıcı tarafından girilen arama terimi, SQL sorgusundaki LIKE ifadesi ile eşleştirilir.

6. Sonuç

PHP 8'de arama formu ile kullanıcıların girdiklerine göre dinamik sonuçlar gösterebilirsiniz. Bu örnek, basit bir kitap arama uygulaması için temel bir yaklaşımı göstermektedir. Daha gelişmiş projelerde, arama sonuçlarını sayfalama, detay sayfalarına yönlendirme veya AJAX gibi tekniklerle daha dinamik hale getirebilirsiniz.



Yorum Ekle

Üzerine gel