Şimdi Ara

PHP ile mysql içinden veri araması nasıl yapılır?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
5
Cevap
1
Favori
3.140
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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 ;)



  • 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
  • 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.
  • tamam işte yukarda anlattığım şekilde döngüye sokarak yapacaksın

    sorgunun sonuna limit'te eklersin olur biter
  • 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 >




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.