Merhaba arkadaşlar Tekrar Başka Bir Yazı İle Karşınızdayım . Sizlere Bu yazımda Site İçi Arama Nasıl Yapılacagından Bahsedeceğim biraz . ilk önce Verceğim Örnekten bahsedeyim. Verceğim Örnek Şöle bişey php ile mysql veritabanına veri kayıt ettırdık diyelim. O veri içinde de Bölümler Olsun Ve O bölümlerde tek tek veya Tamamında php ile arama yaptırıp aramaları ekrana basalım Nasıl mı ? Şöle …
Şimdi mysql tablomuzu oluşturuyoruz diyelim ki mysql tablomuzda sunlar var
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>
<head><title> umutcetinkaya.com | 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 ama ikinci sayfadan devam edelim
#sayfa_sonu#
Evet aramaislem.php dosyasındayız.Oda Şu şekilde baslıyor tabi
<?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
if($sec){
echo "$aranacak_kelime<br>";
echo "veri_icerik_bolum1<br>";
echo "veri_icerik_bolum2<br>";
echo "anahar";
}else{ echo "Sonuc Bulunamadı"; }
şeklinde bişey yapabiliriz
gerisi size kalmıs.
Hadi Selametle Kalın …
Selamün Aleyküm
Benzer Konular:
iyi güzelde php’ye yeni başlayanlar için biraz karışık sanırım,sql baglantısı için sayfa oluşturuluyo ‘mysql_baglanti.php’ adlı ama sayfa içerigi yok
Arkadaşım zaten php’ye yeni başlayanlar ilk once echo ile ugrasır ekrana basmayla ugrasır bu anlattıklarım mysql ile baglantı olayını aşmışlar ıcın
aşmışlar için daha açıklayıcı örnekler olabilirdi..yinede eyw..eline saglık
$aranacak_kelime = mysql_real_escape_string($_GET['aranacak_kelime']);
hatanın sebebi ne olabilir
Kardeş hatayı yazarmısın ?
Tesekkurler Eline saglik
arkadaşım bildiğim kadarı ile mysql_real_escape_string() fonksiyonu mysql bağlantısı olmadan kullanılınca hata veriyor fonksiyonun başına @ koymayı denermisin?
farklı tablolarda arama yı nassıl yaparım uyeler.ziyaret,geyik die tablolarım var hepsinde aramayı nassıll yapabilirim peki
mysql_baglanti.php sayfasının içeriğini vermemişler madem istediniz ben vereyim:
< ?php
$baglan=mysql_connect("hostismi", "kullanıcıadi", "sifre");
mysql_select_db("veritabaniismi", $baglan);
?>
gördünüzmü ne kadar basit abartılacak birşey değil yani
$aranacak_kelime = mysql_real_escape_string($_GET['aranacak_kelime']);
hatalı
@$aranacak_kelime = mysql_real_escape_string($_GET['aranacak_kelime']);
@ $aranacak_kelime = mysql_real_escape_string($_GET['aranacak_kelime']);
şeklinde denedim yine olmadı.
bir çözüm lütfen
include(‘mysql_baglanti.php’)
buradaki hatayı böle düzelt bi sonuna ; koymamışsın bir de tek tınak değilde çift tınak yap
include(“mysql_baglanti.php”);
arkadaşım ellerine sağlık. saol. Bir tek aramaislem.php de include sonlandırmamışsın. Olur insanlık hali tekrar eline sağlık
Hocam ellerine sağlık nokta atış.
benim yapamadığım nokta şu.
diyelimki ben aramayı sql deki “konu” sütünunda yaptırmak istiyorum ama ekrana çıkcak olan sonuçların “veri” sütünundan alınmasını istiyorum. bunu nasıl yapabilirim ?
bunun bu kadar basit olabileceğini tahmin etmemiştim.çok güzel anlatmışsın.teşekkürler
f($sec){
echo “$aranacak_kelime
“;
echo “veri_icerik_bolum1
“;
echo “veri_icerik_bolum2
“;
echo “anahar”;
}else{ echo “Sonuc Bulunamadı”; }
En sonra bunlar olursa sayfaya basmıyor sonuçları nasıl olucak ?
Gerçekten çok karışık olmuş kodların görüntüsü ve basit olmuş ama eline sağlık
Gayet güzel olmuş acıklamarı da var yeterince zaten.. Teşekkürler..
hocam cok guzel olmus . bende ayni benzer bi tablo yaptim . ama ben id giriyorum veri bir iki uc veri dort .
arama yaparken sadece id yi aratip bana id ile girdigim diger veriler gostere bilirmiyim .
—————————————-
id – telefon – email – adress
ben arama yaparken id yazdigimda
bana dokum yapmasini istiyorum
ibrahim – 02126955555 ciwan@hotmail.com istanbul avcilar
yardimci olursan sevinirim
bende buna çıkan sonucu sayfalama yapmak istiyorum nasıl yapabilirim istediğimi aradım 100 tane sonuç cıktı ben bunun 20 tanesini gösterip diğerlerini 2 ci sayfada göstermek istiyorum
$ara= mysql_query("SELECT * FROM mr_hc_kyt WHERE get_isim like '%".$arama."%' or get_adres like '%".$arama."%' or get_tel like '%".$arama."%'");sonuc iyi cıkıyor buraya limit eklediğimde eklediğim limit kadar gösteriyor doğal olarak sayfalama işlemi yapamıyorum.
*4Ayhan
sayfalama yapmak için MySQL’de limit ve offset propertie lerini kullanman gerekmedir.
mesele ilk sayfada sql cümlen
select * from products order by productId desc limit 20 offset 0
mesele ikinci sayfada sql cümlen
select * from products order by productId desc limit 20 offset 20
offset in değerini değiştirerek istediğin gibi pagnition yapabilirsin..
kolay gelsin