Php ile Kategoriye Göre Arama

 bcakir
 30 Ekim 2011

Merhaba arkadaşlar bu yazımda Php ile seçilen kategoriye göre arama yapma ve sonucu listelemeyi anlatacağım. Uygulamamız sadece başlığa göre arama yapacak. İsterseniz içeriği de ekleyebilirsiniz. Bu uygulama ile arama işlemlerinin mantığını öğrenmiş olacağız. Daha önceki yazımda bu konunun temelini oluşturacak olan MySQL veritabanına bağlanma ve kayıt alma işlemini anlatmıştım ama yine de bu betiğin uygulamamıza göre düzenlenmiş haline yazımda yer vereceğim. Bu uygulamamızda veritabanı tasarımını, bilgilerini ve bütün dosyaları içeren çalışır halini yazının sonunda sizlere vereceğim. İçeriğimiz bu şekilde olacak, artık geliştirme bölümüne geçebiliriz.

<?php
//baglanti.php olarak kaydedin
// Veritabanı kullanıcı adınızı girin
$name='root';
// Şifreniz varsa girin
$sifre='';
// Veritabanınızın ismini girin
$vt_name='bcakir';

// Veritabanı Bağlantsı
$baglan = mysql_connect('localhost',$name,$sifre) or die(mysql_error());
if($baglan){
    $db = mysql_select_db($vt_name,$baglan) or die (mysql_error());
    mysql_query('Set character set latin5');
}

// Arama Tablosundan Kayıt Al
$sec = mysql_query("Select Distinct kategori From arama Where onay='1'");
$sayac=0;
while ($row = mysql_fetch_array($sec)){
    $kategori[$sayac] = $row['0'];
    $sayac++;
}
?>

Yukarıda bağlantı işlemimizi yaptık. Şimdi de arama yapmak için gerekli olan form elemanlarını ve bunlardan gelen değerlere göre veritabanından kayıt getirme işlemini yapacağız. Aşağıda yer alacak olan kodları index.php olarak kaydedin.

<?php
//index.php olarak kaydedin
//veritabanı bağlantı ve kategorileri alma
include "baglanti.php";
?>
<!DOCTYPE html>
<html>
<head>
<title>Php ile Kategoriye Göre Arama</title>
</head>
<body>

<form action="index.php" method="post">
<select name="kategori">
    <option value="Hepsi">Hepsi</option>
    <?php
    for($i=0;$i<count($kategori);$i++){
        echo "<option value='{$kategori[$i]}'>$kategori[$i]</option>";
    }
    ?>
</select>
<input type="text" name="kelime" />
<input type="Submit" name="ara" value='Ara'/>
</form>

</body>
</html>

<?php
if(isset($_POST['kelime'])){
    //formdan gönderilen verileri alma
    $a_kelime=$_POST['kelime'];
    $a_kategori=$_POST['kategori'];

    //kategoriyi belirleme
    if($a_kategori=='Hepsi'){
        //kategori öneli olmadan verilerin alınıp, listelenmesi
        $sec = mysql_query("Select * From arama Where baslik like '%{$a_kelime}%' AND onay='1'");
        while ($row = mysql_fetch_array($sec)){
            extract($row);
            echo 'Kategori: '.$kategori."<br />";
            echo 'Başlık: '.$baslik."<br />";
            echo 'İçerik : '.$icerik;
            echo "<hr/>";
        }
    }else{
        //bir kategoriye göre verilerin alınıp, listelenmesi
        $sec = mysql_query("Select * From arama Where baslik like '%{$a_kelime}%' AND kategori='{$a_kategori}' AND onay='1'");
        while ($row = mysql_fetch_array($sec)){
            extract($row);
            echo 'Kategori: '.$kategori."<br />";
            echo 'Başlık: '.$baslik."<br />";
            echo 'İçerik : '.$icerik;
            echo "<hr/>";
        }
    }
}

// Veritabanı bağlantısı sonlandırma
mysql_close();
?>

Yukarıda çokça kullandığımız Php kodlarını ve bunun yanında da MySQL kayıt alma kodları ile uygulamamızı geliştirdik. Yaptığımız bu uygulamayı çalıştırabilmek için; bir tane MySQL veritabanı oluşturup (ben bcakir olarak adlandırmıştım) paylaştığım sql dosyasını içerisine aktarmanız yeterlidir. Eğer isim değişikliği yaparsanız, uygulamanın uygun yerinde değişiklik yapmayı unutmayın. Uygulamanın bütün dosyalarını içeren zipli halini buradan indirebilirsiniz. Çalıştırmamız için gereken önemli noktalara da değindiğimize göre artık yazımı bitirebilirim. Yararlı bir uygulama olması dileğiyle, hoşçakalın.

 2.528 Okunma

Yazı hakkında görüşlerinizi belirtmek istermisiniz?

Daha fazla MySQL, Php
Kapat