v2.5.2
Giriş yap

Arama ve INNER JOIN ilişkisi

pcmemo
523 defa görüntülendi

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.

Cevap yaz
Cevaplar (1)
codepacks
1583 gün önce

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">