Şimdi Ara

SQL ve PHP ile bir sorunum var bakar mısınız?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
7
Cevap
0
Favori
366
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • $result = $conn->query("SELECT *
    FROM users
    WHERE username LIKE '%$search%' ");

    benim sorum yukarıda işlemi eğer $search bir dizi olsaydı nasıl yapardık? Yani ben username'in içinde 'gök' geçenleri ya da 'ah' geçenleri ya da 'meh' geçenleri bulmak istesem?



  • ... username LIKE '%$search[0]%' OR username LIKE '%$search[1]%' OR username LIKE '%$search[2]%'
  • tamolarak sorumu anlatamamışım galiba... ben o diziyi örnek vermiştim.. peki dizi 100 elemanlı olsa 100 tane or mu yazmalıyız? bunun en verimli çözümü nedir?
  • Cezve'nin dediği yöntemi for döngüsü kurarak yapabilirisin:
     
    $stmt = "SELECT * FROM users WHERE username LIKE ";
    $ebat = count($search);
    for($i=0; $i<$ebat; $i++){
    $stmt = $stmt."\"".$search[$i]."\"";
    if($i == $ebat-1) //son elemana geldiysek...
    break;
    $stmt = $stmt." OR username LIKE ";
    }


    Denemedim ama çalışır sanıyorum.
  • 100 terimlik arama yapmazsın google bile 32 terimden sonrasını aramıyor
  • @un.real

    bende tam olarak aynısını yaptım.. saol...

    @cezve

    peki sql kaç terimlik aramaya kadar sağlam kalır bi fikrin var mı?
  • Kaç terim bilmiyorum. Bakmak lazım. Ancak bu şekilde verim alamazsın. Denemedim ama 32 terimi bu şekilde aramak, elbette data`na göre, dakikalar sürebilir.

    Çeşetli algoritmalar ile ve, veya index`leme metoduyla sayısal arama olayı yapılabilir. Mysql`in full-text olayına da bir göz atmanı tavsiye ederim. Bunlarla kullanacağın şekle göre uygun şeyler çıkarmak mümkün.
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.