Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
4
Cevap
3267
Tıklama
0
Öne Çıkarma
PHP ile mysql içinden veri araması nasıl yapılır?
D
16 yıl
Onbaşı
Konu Sahibi

Merhaba,
PHP sitemde arama kısmını bir türlü istediğim gibi oluşturamadım. Arama yapılan değer veri tabanımdaki bir değere yakınsa listelenmesini istiyorum. Kendi mantığımca if ile yapmaya çalıştım. Fakat if yapınca arama kutucuğunda ki metinle birebir eşleştirme yapıyor. Mesela Samed adını aradığımda veri tabanımdaki Samed Değer'i bulup yazdırmıyor. Ancak Samed Değer diye ararsam buluyor ve yazdırıyor. Bu sorunu nasıl aşabilirim?

Birde yapılması mümkün mü bilmiyorum ama ben hatta Samed Değer yazıldığında Samed Deger ya da Samed Diğer vb diğer verileride aratıp yazdırmak istiyorum. Ama önemli olan ilk söylediğim bu o kadar önemli değil.

Bilgilerinizi paylaşırsanız sevinirim... Kolay gelsin ;)

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



Y
16 yıl
Yüzbaşı

tam sorun ne anlamadım.

yapmak istediğin şey mesela:

motel diye aratıldığında hotel kelimesini çıkarması gibi birşeyse eğer


php ile döngüye sokarak mysql de like komutunu kullanarak

?otel, m?tel, mo?el, ? mot?l, mote? tarzında oluşturup like komutuyla


SELECT * FROM tablo1 WHERE ( alan1 like '?otel' OR alan1 like 'm?tel' OR ... )

tarzında yansıtmak



ikincisi ise Mysql zaten destekliyor dediğini. yani değerin "Samed Değer" de olsa "Samed Deger" de olsa aratınca yazdırır mysql


Bu mesaja 1 cevap geldi.
D
16 yıl
Onbaşı
Konu Sahibi

Fakat binlerce isim var bunların hepsini tek tek söylediğin gibi yapamam. Daha anlatılır bir biçimde yazayım. Mesela google'a donanım yazdığında donanım haber kısmındaki donanımı alarak buluyor. Ama ben bunu yaptıramadım. Örneğin donanım haberi bulmak için illa arama kutucuğuma donanım haber yazmam gerekiyor. Donanım yazarsam Donanım Haber'i bulmuyor.
Umarım bu sefer daha açıklayıcı olmuştur.


Bu mesaja 1 cevap geldi.
Y
16 yıl
Yüzbaşı

tamam işte yukarda anlattığım şekilde döngüye sokarak yapacaksın

sorgunun sonuna limit'te eklersin olur biter


Bu mesaja 1 cevap geldi.
D
16 yıl
Onbaşı
Konu Sahibi

Senin söylediğin gibi 10.000 den fazla ismi ?otel h?tel ho?el vs. şeklinde like or like diye yapamazdım ama Like komutunu sayende inceledim ve şu şekilde yaparak başardım:

<?php

// TANIMLAMALAR
ini_set("display_errors", 0);
$ip = $_SERVER['REMOTE_ADDR'];
$kullaniciadi = "root";
$sifre = "";
$host = "localhost";
$veritabani = "bilgiler";
$baglan=mysql_connect($host,$kullaniciadi,$sifre);
mysql_select_db($veritabani,$baglan);
$aranan = $_GET["kim"];
$sorgu = mysql_query ( "SELECT * FROM kisiler where isimsoyad like '%$aranan%' " );

//Mysqldan Yazdırma
while ( $oku = mysql_fetch_assoc ( $sorgu ) ) {
echo "<table width=\"600\" border=\"1\"><tr>
<td width=\"200\">$oku[isimsoyisim]</td>
<td width=\"200\">$oku[tarih]</td>
<td width=\"200\" class=\"yasla\">$oku[notum]</td>
</tr></table>\n";
}
?>

Yardımların için teşekkür ederim Yvolkan





< Bu mesaj bu kişi tarafından değiştirildi deger -- 13 Mart 2010; 14:12:38 >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.