Arama ve INNER JOIN ilişkisi
Merhaba arkadaşlar, tbl_aygitlar adında bir tablom var burada bilgisayar ve benzeri aygıtların kullanısnın kim olduğunu ve lisans bilgilerini tutuyorum. Bu tabloda AygitKullaniciID sütununda yazdığım id numarasını INNER JOIN fonksiyonu ile tbl_users tablosundan UserID ile Ad ve Soyadını alıyorum.
$sorgu = $db->prepare("SELECT * FROM tbl_aygitlar
INNER JOIN tbl_users ON tbl_users.UserID = tbl_aygitlar.AygitKullaniciID
");
Bu sayede Aygıt Listesine Kullanıcının ismini manuel yazmadan dropworn menü ile seçerek ID yazarak Ad Soyad print ederek listeliyorum.
Daha önce bunun yerine Ad Soyadı input ile elle yazarak giriyordum arama yaparken alttaki sorgu yardımı ile Ad Soyad yazarak arayabiliyordum.
$sorgu = $db->prepare('SELECT * FROM tbl_aygitlar
WHERE CONCAT(`AygitAd`, `AygitKullanici`, `os_key`, `ofis_key`) LIKE :par');
$sorgu->execute(array(':par' => '%'.$search.'%'));
Şimdi yukarıda bahsettiğim sadece ID sini yazdırma metodu ile isimle nasıl ararım. Karmaşık bir sorgusu var muhtemelen, örnek kod varsa düzenlemeye çalışırım.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (1)
merhaba aşağıdki kodları incelerseniz mantığını anlarsınız
<?php
$sorgu = '';
if(isset($_REQUEST['adi']) and $_REQUEST['adi']!=""){
$sorgu .= ' AND adi LIKE "%'.$_REQUEST['adi'].'%" ';
}
if(isset($_REQUEST['soyadi']) and $_REQUEST['soyadi']!=""){
$sorgu .= ' AND soyadi LIKE "%'.$_REQUEST['soyadi'].'%" ';
}
$sql = $db->query("SELECT * FROM uyeler WHERE 1 ".$sorgu."");
?>
html
<input type="text" name="adi" id="adi" class="form-control" value="<?php echo isset($_REQUEST['adi'])?$_REQUEST['adi']:''?>" placeholder="Enter user name">