$search = $database->prepare("SELECT title, shortdescription, longdescription from tm_products where title LIKE :keyword OR shortdescription LIKE :keyword OR longdescription LIKE :keyword UNION SELECT title,description,details from tm_news where title LIKE :keyword OR description LIKE :keyword OR details LIKE :keyword");
$search->bindValue(':keyword', '%'.$keyword.'%');
$search->execute();
foreach ($search as $result):
echo $result['title'].'<br />';
endforeach; sonucun hangi tablodan geldiğini anlama
6
●263
- 18-03-2015, 11:32:58Site içinde arama bölümü yapıyorum. Birden fazla tabloda arama yapıp sonuçları döküyorum. Buraya kadar bir sıkıntı yok. Yalnız bu sonuçlarının link yapıları farklı. Mesela biri product.php dosyasına gitmesi gerekirken diğerinin news.php dosyasına gitmesi gerekiyor. Sonuçların hangi tablodan geldiğini nasıl anlayabilirim? Sorgum aşağıdaki gibidir:
- 18-03-2015, 11:41:26Linktipi diye bir sütun açın veritabanınızda burada bir gruplama yapın örn. linktipi = 1 İse news.php 2 ise product.php gibi bir yapı kullanabilirsiniz.
- 18-03-2015, 11:48:25Yani öyle bir seçenek aklımda mevcut fakat tablo adını alıp if döngüsüyle halletmek daha kolay olmaz mı? Yoksa her veri için link tipi tanımlamak zorunda kalacağım. Bu da veritabanında extra yük demek.Internetabi adlı üyeden alıntı: mesajı görüntüle
- 18-03-2015, 12:03:30@loc,
aşağıdaki şekilde yapabilirsin. islemSonuc islem1 ve islem2 sonucuna göre istediğin gibi yönlendirebilirsin.
SELECT title, shortdescription, longdescription,'islem1' as islemSonuc from tm_products where title LIKE :keyword OR shortdescription LIKE :keyword OR longdescription LIKE :keyword UNION SELECT title,description,details,'islem2' as islemSonuc from tm_news where title LIKE :keyword OR description LIKE :keyword OR details LIKE :keyword
- 18-03-2015, 12:06:22Kusura bakmayın daha önceden böyle bir sql sorgusu ile karşlılaşmadığım için soruyorum. Bunu nasıl döngüye sokabilirim? Yani islemSonuc un islem1 veya islem2 mi olduğunu öğrenmek için bu alanları değişkene nasıl tanımlıyoruz?yvolkan adlı üyeden alıntı: mesajı görüntüle
- 18-03-2015, 12:15:35Bu sql sonucunda tm_products tablosundan geliyorsa islemSonuc alaninin değeri islem1, tm_news tablosundan geliyorsa islemSonuc islem2 olacaktır.loc adlı üyeden alıntı: mesajı görüntüle
Tam olarak neyi sorduğunu anlamadım ama SQL 'i bu şekilde yapınca
PHP ile aldığın sql sorgusunun sonucu atadığın değişken örn: row ise
if ( $row['islemSonuc'] == 'islem1' ){
$tmpAdres = 'urun/urundetay.html';
} else {
$tmpAdres = 'haber/haberdetay.html';
}
tarzında işlem yapman gerekli. - 18-03-2015, 12:29:02Teşekkürler. Sayenizde sorunumu çözdüm.yvolkan adlı üyeden alıntı: mesajı görüntüle