Tekil Mesaj gösterimi
  #1  
Alt 1 June 2009, 14:29
Yorgun Yürek - ait Kullanıcı Resmi (Avatar)
Yorgun Yürek Yorgun Yürek isimli Üye şimdilik offline konumundadır
♥ GüLerken AğLadığını,MutLu OLanLar BiLmez
 
Kayıt Tarihi: 3 March 2009
Mesajlar: 35,077
Konular:
Aldığı Beğeni: 0 xx
Beğendiği Mesajlar: 0 xx
Standart Php ile Mysql veritabanında arama yaptırma

Şimdi mysql tablomuzu oluşturuyoruz diyelim ki mysql tablomuzda sunlar var


PHP Kodu:

id | veri_baslik | veri_icerik_bolum1 | veri_icerik_bolum2 | anahtar_sozcuk |



İşte dbde bu sekılde verilerimizi kayıt ettirmiş olalım Peki Şimdi Bu Verilieri Aramamız lazım onun ıcın kucuk bır arama formu yapıyoruz "arama.php" diyelim buna Form Şu Şekilde olabilir



HTML Kodu:
<html><head><title> umutcetinkaya| Arama Yapma </title></head><form action="aramaislem.php" name="ara" method="get">Aranacak Kelime : <input type="text" name="aranacak_kelime"><br><select name="sec"><option value="veri_1">veri_icerik_bolum1 De Ara<option><option value="veri_2">veri_icerik_bolum2 De Ara<option><option value="anahtar">Anahtar Kelimelerde Ara<option><option value="hepsinde">Hepsinde Ara<option></select><br><br><input type="submit" name="ara" value="ara"></form></html>

İşte bu şekilde bir form olusturduk ıcıne select koyduk arama yapacagımız alanları secelim dıye simdi asıl olan ikinci bolum aramaislem.php doyasında ne olcak yanı ? ona gecelim simdi ...

aramaislem.php dosyasındayız.Oda Şu şekilde baslıyor tabi


PHP Kodu:

<?php // PHP Code Larımıza Başladık
include('mysql_baglanti.php') // Mysql Baglantısı Yaptık ..
$aranacak_kelime = mysql_real_escape_string($_GET['aranacak_kelime']); /* Aranacak Kelimeyı arama.php den cektik */
$sec =$_GET['sec']; /*Selectte nereyı sectıyse ona gore arama komutunu sectık */
if($sec=="veri_1"){
$sql= mysql_query("SELECT * FROM sozluk WHERE veri_icerik_bolum1 like '%".$aranacak_kelime."%'");
}elseif($sec=="veri_2"){
$sql= mysql_query("SELECT * FROM sozluk WHERE veri_icerik_bolum2 like '%".$aranacak_kelime."%'");
}elseif($sec=="anahtar"){
$sql= mysql_query("SELECT * FROM sozluk WHERE anahtar like '%".$aranacak_kelime."%'");
}elseif($sec=="hepsinde"){
$sql= mysql_query("SELECT * FROM sozluk WHERE veri_icerik_bolum1 like '%".$aranacak_kelime."%' or veri_icerik_bolum2 like '%".$aranacak_kelime."%' or anahtar like '%".$aranacak_kelime."%'");
}//Dedik Ve Arama Bolumlerını Bitirdik
?>

Şimdi Acıklayım kı burda kı tahmın edemedıgınız yerin like '%".$aranacak_kelime."%' like veritabanından arama yapmak ıcın kullanılan bır komut oluyor . Ve arama.php den attıgımız aranacak_kelime yi belirttiğimiz yerlerde arıyor peki nasıl arıyor bu '%".$aranacak_kelime."%' Şeklinde yazdıgımız ıcın Arama yaptıgımız metin yazı baslık herneyse onun ıcınde herhangi bi yerinde gecen kelimeyi arıyor daha kapsamlı yanı ornek vermek gerekırse Şu Şekilde Aranacak Kelime : "al" olsun arama yaptırırken like komutundan sonra '%".$aranacak_kelime."%' Bu Tür Kodlama kullandıysak
--
Ali nerdeydın bugun niye gelmedin .
Evdeydim Top Aldım oynayalım mı ?
Yok ya ben oynamam.
Sakal trası olcam
O zaman Bıcak Al . =)
--
hehe ornek bıraz olmadı ama ıstedıgımı anlatmam için bole bısey gereklıydı .neyse Gecelim konuya ne demiştim eger arama yaparken like den sonra '%".$aranacak_kelime."%' kullandıysanız Arama sonucu Su Renkliler Olcaktır .
--------------------------------------------------------
Ali nerdeydın bugun niye gelmedin .
Evdeydim Top Aldım oynayalım mı ?
Yok ya ben oynamam.
Sakal trası olcam
O zaman Bıcak Al . =)
Sen ali Soyadın Topal Dı Degıl mı
---------------------------------------------------------
İşte umarım anladık .
Peki Alternatifim var mı ?Evet Tabiki Alternatifleri Şu Şekilde Sıralayım ve Acıklayım ...
Like Komutundan sonra Şu Komutu kullanırsak '%$aranacak_kelime' Bu Komutu Kullanırsak Eger Arama Sonuclarımızda $aranacak_kelime İle bıten sonucları alırız ornegımıze gore Söle ..
---------------------------------------------------------
Ali nerdeydın bugun niye gelmedin .
Evdeydim Top Aldım oynayalım mı ?
Yok ya ben oynamam.
Sakal trası olcam
O zaman Bıcak Al . =)
Sen ali Soyadın Topal Dı Degıl mı
---------------------------------------------------------
Like Komutundan sonra '$aranacak_kelime%' koyarsak ise $aranacak_kelime ile başlayanları arar yani
--------------------------------------------------------
Ali nerdeydın bugun niye gelmedin .
Evdeydim Top Aldım oynayalım mı ?
Yok ya ben oynamam.
Sakal trası olcam
O zaman Bıcak Al . =)
--------------------------------------------------------
Like Komutu kullanmadan direk sorgunun uzantısına ='$aracak_kelime' koyarsak Birebir Arama Yapar . Yani Tek ve kesine yonelik arama yapar oda sole yanı
---------------------------------------------------------
Ali nerdeydın bugun niye gelmedin .
Evdeydim Top Aldım oynayalım mı ?
Yok ya ben oynamam.
Sakal trası olcam
O zaman Bıcak Al . =)
---------------------------------------------------------
Birde Bunun Tam Tersini Yapan Komut Olusturursak oda Şöle Olabilir !='%$aranacak_kelime%'
İşte Buda Aranacak Kelime Olmayanları ekrana basar yani ...
---------------------------------------
Ali nerdeydın bugun niye gelmedin .
Evdeydim Top Aldım oynayalım mı ?
Yok ya ben oynamam.
Sakal trası olcam
O zaman Bıcak AL . =)
---------------------------------------------------------------------
İşte bunlar mysql ' un Bize sundukları Peki bız acıklama felan yaptık ama arama sonuclarını ekrana basmadık oda su sekılde olur


PHP Kodu:

if($sec){
echo "$aranacak_kelime<br>";
echo "veri_icerik_bolum1<br>";
echo "veri_icerik_bolum2<br>";
echo "anahar";
}else{ echo "Sonuc Bulunamadı"; }
Alıntı ile Cevapla