lostyazilim
tr.link

Arama Kombinasyonları Hakkında

11 Mesajlar 1.643 Okunma
acebozum
tr.link

manav manav WM Aracı Kullanıcı
  • Üyelik 13.08.2015
  • Yaş/Cinsiyet 31 / E
  • Meslek öğrenci
  • Konum Balıkesir
  • Ad Soyad F** T**
  • Mesajlar 156
  • Beğeniler 43 / 22
  • Ticaret 0, (%0)
Arkadaşlar merhaba,

Bir rehber programımız var ve çeşitli kriterlere göre arama yapıyor mesela şehre göre veya kuruma göre. Bu şekilde 6 tane kriterimiz vardı. Ben aklıma bir şey gelmediğinden amele gibi 63 farklı kombinasyona göre sql sorgusu yazdım. If else'ler ile hangi kategorinin select listinden seçim yapıldıysa boş değilse o kriterleri WHERE'de kullandım. Zamanında üşenmemiş yazmışım kısacası. Ama şimdi bir arama kriteri daha eklememiz gerekiyor. 7nin bütün kombinasyonları da 127 çıkıyor 64 tane daha farklı kombinasyon yazamam bir de mutlaka karışacaktır artık bu iş.

Sorum şu ben bu işi nasıl yaparım amacım 7 farklı veriden seçilenlere göre sql sorgusu yapmak. Yardımcı olabilir misiniz?
 

 

wmaraci
reklam

OmerGunay OmerGunay https://omergunay.net Kullanıcı
  • Üyelik 15.05.2015
  • Yaş/Cinsiyet 33 / E
  • Meslek PHP Developer
  • Konum İstanbul Avrupa
  • Ad Soyad Ö** G**
  • Mesajlar 1207
  • Beğeniler 382 / 381
  • Ticaret 16, (%100)
manav sql tablonuzun resmini atarsanız daha çok fikir verebiliriz. Şimdi ben size bişeyler yazacaktım ama sql yapınız buna uygun değilse size uymayacaktır. Siz sql tablonuzu gönderirseniz ona göre fikirler vermeye çalışabiliriz.
manav

kişi bu mesajı beğendi.

Herkes yediğinden ikram eder..(Yavuz Sultan Selim)

manav manav WM Aracı Kullanıcı
  • Üyelik 13.08.2015
  • Yaş/Cinsiyet 31 / E
  • Meslek öğrenci
  • Konum Balıkesir
  • Ad Soyad F** T**
  • Mesajlar 156
  • Beğeniler 43 / 22
  • Ticaret 0, (%0)
görev kurulus sehir ulke bunlar kendi adlarındaki tablolardaki verinin idsine göre rehber tablosuna kaydediliyor.
 

 

manav manav WM Aracı Kullanıcı
  • Üyelik 13.08.2015
  • Yaş/Cinsiyet 31 / E
  • Meslek öğrenci
  • Konum Balıkesir
  • Ad Soyad F** T**
  • Mesajlar 156
  • Beğeniler 43 / 22
  • Ticaret 0, (%0)
omergunay (adınız çıkmadı)

görev kurulus sehir ulke bunlar kendi adlarındaki tablolardaki verinin idsine göre rehber tablosuna kaydediliyor.


 

 

wmaraci
wmaraci

manav manav WM Aracı Kullanıcı
  • Üyelik 13.08.2015
  • Yaş/Cinsiyet 31 / E
  • Meslek öğrenci
  • Konum Balıkesir
  • Ad Soyad F** T**
  • Mesajlar 156
  • Beğeniler 43 / 22
  • Ticaret 0, (%0)

ÖmerGünay adlı üyeden alıntı

manav sql tablonuzun resmini atarsanız daha çok fikir verebiliriz. Şimdi ben size bişeyler yazacaktım ama sql yapınız buna uygun değilse size uymayacaktır. Siz sql tablonuzu gönderirseniz ona göre fikirler vermeye çalışabiliriz.


Bir şey bulamadım yardımlarınızı bekliyorum.
 

 

OmerGunay OmerGunay https://omergunay.net Kullanıcı
  • Üyelik 15.05.2015
  • Yaş/Cinsiyet 33 / E
  • Meslek PHP Developer
  • Konum İstanbul Avrupa
  • Ad Soyad Ö** G**
  • Mesajlar 1207
  • Beğeniler 382 / 381
  • Ticaret 16, (%100)
manav iş yoğunluğum var da çok bakamadım kusura bakma. Şimdi senin istediğin sorguyu nasıl yazarız emin değilim deneye deneye yaparız ama şu linki bi incele. Mantığı bu şekilde olacak.

https://gencyazilimci.com/php-ile-arama-sonuclarini-filtreleme-123/
 

 

Herkes yediğinden ikram eder..(Yavuz Sultan Selim)

VipTema VipTema Vip Tema Web Tasarım Kullanıcı
  • Üyelik 29.06.2011
  • Yaş/Cinsiyet 37 / E
  • Meslek Vip Tema Web Tasarım A.Ş.
  • Konum Tekirdağ
  • Ad Soyad Ö** I**
  • Mesajlar 1393
  • Beğeniler 704 / 703
  • Ticaret 21, (%100)
or where i cogaltmaniz yeterliyken neden if elseler ile bogustunuz ki. İşi sql sorgusunu yazarken çözmeniz yeterli olurmus. Tabloda 24 sütun var zannedersem 20 kadar kriter var 20 kere or where kullanirdiniz maksimum.
 

 

manav manav WM Aracı Kullanıcı
  • Üyelik 13.08.2015
  • Yaş/Cinsiyet 31 / E
  • Meslek öğrenci
  • Konum Balıkesir
  • Ad Soyad F** T**
  • Mesajlar 156
  • Beğeniler 43 / 22
  • Ticaret 0, (%0)
Okan_IŞIK ama kriterlerden herhangi birine uyanı getirmiyoruz. Seçtiklerimizden hepsine uyanı getirmek istiyoruz. Misal il olarak İstanbul'da yaşayıp meslek olarak yazılımcı olanları seçeceğiz diyelim or kullanırsak istanbul dışındaki yazılımcıları da getirmez mi? Ayrıca esas mesele şu ki diyelim bir de yaş kriteri var. Şimdi yaş kısmında da bir şey seçmedik. Şimdi bu durumda sql sorgusunda boş olan yaş kriterini yazmamak için yaşın seçildiği ve seçilmediği duruma göre ayrı iki tane sql sorgusu yazıyorum. Sorun da burada başlıyor 7 kriterin çeşitli kombinasyonlarına göre 127 tane farklı sql sorgusu çıkıyor. Yani öyle bir sql sorgusu olmalı ki seçilmeyen kriter yok gibi davranabilmeli.
 

 

manav manav WM Aracı Kullanıcı
  • Üyelik 13.08.2015
  • Yaş/Cinsiyet 31 / E
  • Meslek öğrenci
  • Konum Balıkesir
  • Ad Soyad F** T**
  • Mesajlar 156
  • Beğeniler 43 / 22
  • Ticaret 0, (%0)

ÖmerGünay adlı üyeden alıntı

manav iş yoğunluğum var da çok bakamadım kusura bakma. Şimdi senin istediğin sorguyu nasıl yazarız emin değilim deneye deneye yaparız ama şu linki bi incele. Mantığı bu şekilde olacak.

https://gencyazilimci.com/php-ile-arama-sonuclarini-filtreleme-123/


Benim kodlarım şu şekilde misal 6 kriterin ikili kombinasyonları bu şekilde yazdım. Sadece ülke ve göre seçildiyse sonra sadece ulke ve kuruluş seçildiyse şeklinde. Attığınız linkte de sanki buna benzer bir yöntem var. if'ler ile sql sorgusunun where kısmını oluşturuyor gibi geldi. Ben mi yanlış bir okuma yaptım acaba.


}elseif($ulke != '0' && $gorev != '0'){
$kriteregorcek = $db->query("SELECT * FROM rehber WHERE ulke = '{$ulke}' AND gorev = '{$gorev}' AND silik = '0' ORDER BY adsoyad ASC", PDO::FETCH_ASSOC);
}elseif($ulke != '0' && $kurulus != '0'){
$kriteregorcek = $db->query("SELECT * FROM rehber WHERE ulke = '{$ulke}' AND kurulus = '{$kurulus}' AND silik = '0' ORDER BY adsoyad ASC", PDO::FETCH_ASSOC);
}elseif($gorev != '0' && $kurulus != '0'){
$kriteregorcek = $db->query("SELECT * FROM rehber WHERE gorev = '{$gorev}' AND kurulus = '{$kurulus}' AND silik = '0' ORDER BY adsoyad ASC", PDO::FETCH_ASSOC);
}
 

 

OmerGunay OmerGunay https://omergunay.net Kullanıcı
  • Üyelik 15.05.2015
  • Yaş/Cinsiyet 33 / E
  • Meslek PHP Developer
  • Konum İstanbul Avrupa
  • Ad Soyad Ö** G**
  • Mesajlar 1207
  • Beğeniler 382 / 381
  • Ticaret 16, (%100)
manav if ile yaparken şöyle bişey yapmak lazım.

if ile gelen postları kontrol edip ona göre sorguları yazıp onları da bi yerde birleştirmek. Yani;


if($ulke != '0'){
$ulke_sorgu = "AND ulke = $ulke";
}else {
$ulke_sorgu = " ";
}

if($gorev!= '0'){
$gorev_sorgu = "AND gorev= $gorev";
}else {
$gorev_sorgu = " ";
}

$sorgu = $db->query("SELECT * FROM rehber WHERE $ulke_sorgu $gorev_sorgu ORDER BY adsoyad ASC", PDO::FETCH_ASSOC);



Burdaki ayrı ayrı atamalar yerine tek değişkene atayıp implode ederek de yapmayı deneyebilirsin. Aklıma böyle bişey geldi. Tabi burda WHERE yanına bişey yazdırmak lazım diğerlerini etkilemeyen direk AND olduğu için. Ya da ona da bi şart getirip ayarlamak lazım.
manav

kişi bu mesajı beğendi.

Herkes yediğinden ikram eder..(Yavuz Sultan Selim)
wmaraci
wmaraci
Konuyu toplam 5 kişi okuyor. (0 kullanıcı ve 5 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al