PHP PDO ile site içi arama motoru yapımı

27 Ocak 2018
Soner USTA PHP

Merhaba arkadaşlar bugün sizlere kendi yapmış olduğum ve kullanmakta olduğum site içi arama motoru nasıl yapılır bunu anlatacağım.İlk olarak arama kutusu ekleyerek başlayacağız.Kendi kullamış olduğum arama kutusu kodlarını vereceğim sizlere estetik bir görünüş için bunu kullanabilirsiniz ve ya kullanmayabilirsiniz sizlere kalmış.
Arama kutusu için html kodları alttadır.

<div id="custom-search-input">
	<form class="input-group col-lg-12" action="arama.php" method="post">
			<input type="text" class="form-control input-lg" placeholder="Arama" name="baslik"/>
			<span class="input-group-btn">
			<button type="submit" class="btn" name="arama"> <i class="fa fa-search" aria-hidden="true"></i></button>
		</span>
	</form>
</div>

 Görünüşü Güzelleştirmek için css kodlarımız alttadır.

#custom-search-input{
    padding: 3px;
    border: solid 1px #E4E4E4;
    border-radius: 6px;
    background-color: #fff;
}

#custom-search-input input{
    border: 0;
    box-shadow: none;
}

#custom-search-input button{
    margin: 2px 0 0 0;
    background: none;
    box-shadow: none;
    border: 0;
    color: #666666;
    padding: 0 8px 0 10px;
    border-left: solid 1px #ccc;
}

#custom-search-input button:hover{
    border: 0;
    box-shadow: none;
    border-left: solid 1px #ccc;
}

#custom-search-input i{
    font-size: 20px;
}

Bunları sitemize ekledikten sonra arama.php kısmı geliyor yani php ve sql sorgularımızı çağıracağımız kısım.

İlk olarak en üst bölgeye gelen veri boşmu değil mi kontrol etmek için if sorgumuzu ekliyoruz boş işe geri göndericek bu şekilde bir güvenlik açığını kapatmış oluyoruz.

<?php
if (empty($_POST["baslik"])) {
  header("Location:index.php");
}
?>

Bunu ekledikten sonra ise sorgumuzu yazıyoruz.Değiştireceğimiz kısımlar ise tablo adi ve yazı isiminin bulunduğu kısımlar.

<?php
$gelen = $_POST["baslik"];
$yazisor=$db->prepare("SELECT * FROM tablo_adi where yazi_isim LIKE '%$gelen%' ORDER BY yazi_id DESC");
$yazisor->execute(array());
?>

Bunlardan sonra ise while döngümüz ile yazdırmayı başlatıryoruz.

<?php
while($yazicek=$yazisor->fetch(PDO::FETCH_ASSOC)) {
                              				?>
                                      <div class="col-lg-12">
                                        <div class="row">
                                        <div class="b1">
                                          <div class="a1" style="padding-bottom: 0px;">
                                            <h3><b><?php echo $yazicek['yazi_isim'] ?></b></h3>
                                            <h5><a href="<?php echo $yazicek['kategori_isim'] ?>" style="border:0px;"><?php echo $yazicek['kategori_isim'] ?></a></h5>
                                          </div>
                                          <div class="a1" style="padding-top:0px;">
                                    <p><?php echo substr($yazicek['yazi_icerik'],0,300) ?></p>
									<div class="row">
                                        <div class="col-lg-12">
                                        <b>Devamını Gör</b></button></p></a>
                                </div>
						</div>
                    </div>
                </div>
           </div>
    </div>
<?php } ?>

Hayırlı olsun arama motorumuz artık çalışıyor bunlar benim direkt olarak kendi sitem üzerinde kullandığım ve çalışan kodlar bu yüzden bir hata alırsanız lütfen yorumlarda yazın.

İyi Çalışmalar.