Web sitelerimizin içinde bazen konuları bulmak için basit bir arama motoruna ihtiyacımız olabiliyor. Şimdi basit bir örnekle açıklayacağım bunu:
Aramayı yapacak formun html kodları
<form action="sonuc.php" method="get">
<input type="text" name="aramasorgusu" placeholder="Aramak istediğiniz kelimeyi yazınız"><br>
<input type="submit" value="Ara">
</form>
sonuc.php içinde bulunacak kodlar
<?php
$aramasorgusu = @mysql_real_escape_string($_GET['aramasorgusu']);
$sonucsorgu = @mysql_query("SELECT * FROM konular WHERE baslik LIKE '%".$aramasorgusu."%'" );
if(@mysql_num_rows($sonucsorgu)>0){
while($sorguoku=@mysql_fetch_array($sonucsorgu)){
echo $sorguoku['baslik'].'<br>';
}
}
else{
echo 'Aradığınız İçerik Bulunamadı';
}
?>
SELECT * FROM konular sorgusu ile konular isimli tablodaki verileri seçiyoruz ama burada şart var WHERE baslik ile baslik isimli sütündaki verileri almasını söylüyoruz fakat burada yine bir şart belirtilmiş LIKE veritabanından arama yapmak için kullanılan komuttur LIKE %aranacak kelime% şeklinde sorgu yapılır biz % işaretleri arasında formdan gelen sorguyu tutan değişkenimizi koyuyoruz, sonra while döngüsü ile bulunan sonuçları alt alta gelecek şekilde yazdırıyoruz, siz bunu daha güzel bir şekilde yapabilirsiniz, link olarak belirlersiniz yada güzel bir tasarımla da yapabilirsiniz ben sizlere en basit haliyle anlattım.
Anlamadığınız yerler olursa konu altından yorum yaparak bana ulaşabilirsiniz.
English: https://niyazi.net/en/php-in-site-search-engine-construction
5 yorum
oguz
08 Eki 2012 01:53merhabalar php site için local hostta çalşıma yapıyorum, daha yeniyim yukarıda anlattıklarınızdan pek birşey anlamıyorum, görsel olarak anlatırmısınız. Teşekkürler
Cryptograph
08 Eki 2012 02:23Resimli anlatım yapmış olsamda aynı kodları kullanacağım resimlerde, bunların çalışan versiyonu için bu sitenin arama motorunu örnek alabilirsin, GET ve POST mantığnı kavradınız mı?
GET adres satırından veriyi aktarır, POST arkaplanda gönderir. burda aramasorgusu değişkeni ile get ile gönderdik veriyi ve sonuç sayfasında get ile aldık veriyi, fakat bütün bunları yapmadan önce bir veritabanı bağlantısı yapmış olmanız gerekmekte, veritabanı bağlantısı yapmadıysanız eğer bu komutlar çalışmaz, veritabanı bağlantısı yapmayı ve veritabanında sorgu çalıştırmayı biliyor olduğunuzu düşünerek bu konuyu yazdım, veritabanı bağlantısı ile ilgili konu için buraya bakabilirsiniz
https://niyazi.net/tr/php-mysql-veritabanina-baglanmak-ve-bilgi-okumak-resimli-anlatim
cumhu
26 Tem 2013 08:00sitem yok ancak yapıyorum sizin arama motorunuzda bu prensiplemi çalışıyor çok kolay geldi çünkü yani buceden beri arıyordum 2.sıradasınız googlede enteresan :D
yunus
07 Ara 2013 21:08burada oluşturmamız gereken veritabanı hakkında bize etaylı bilgi verirmisinz yada hazır hali varsa paylaşabilirmisiniz
Cryptograph
08 Ara 2013 03:04Veritabanının her hangibir tablosunda arama yapabilirsiniz. Özel bir veritabanı olmasına gerek yok, konudaki belirttiğim gibi veritabanı select sorgusu ile alıyoruz yine bilgiyi, buradaki fark where ile benzerlik şartı belirleyerek yapıyoruz seçim işlemini.
Phpmyadminden bir veritabanı oluşturup deneyebilirsiniz. Örnek olarak rehber adında bir veritabanı açıp, numaralar adında bir tablo belirleyip "id, numara, isim" alanları tanımlayıp bunlara bir kaç telefon numarası ve isim ekleyip phpmyadmin sql sorgu penceresinden select * from numaralar where isim like '%kayıt ismi%' or numara like '%telefon numarası%' şeklinde bir sorgu ile deneme yapabilirsiniz.