lostyazilim
tr.link

Çoklu kategori listeleme

6 Mesajlar 1.872 Okunma
acebozum
tr.link

sufyani sufyani WM Aracı Kullanıcı
  • Üyelik 23.11.2017
  • Yaş/Cinsiyet 54 / E
  • Meslek Grafik Tasarımcı / Coder
  • Konum İstanbul Anadolu
  • Ad Soyad S** B**
  • Mesajlar 101
  • Beğeniler 7 / 6
  • Ticaret 0, (%0)





$post = $db->query("SELECT * FROM urunler");
foreach($post as $rows){
$explode = explode(",",$rows["urunkate"]);

if($have = in_array($get,$explode)){
$NewSql = $db->prepare("SELECT * FROM urunler WHERE urunkate LIKE ?");
$NewSql->execute(array("%".$get."%"));
$xx = $NewSql->fetch();

foreach ($NewSql as $rv) {
?>







Bu kodlara göre çoklu kategori listeleme bir üründen birden fazla aynı id listeleniyor. Bunu çözemedim. Yardımlarınız için teşekkür ederim.
 

 

elektronikssl
webimgo

bydoqt0r bydoqt0r WM Aracı Kullanıcı
  • Üyelik 08.12.2013
  • Yaş/Cinsiyet 28 / E
  • Meslek Yazılım
  • Konum İstanbul Anadolu
  • Ad Soyad B** S**
  • Mesajlar 30
  • Beğeniler 6 / 3
  • Ticaret 0, (%0)
Merhaba hocam,
şimdi yapmış olduğunuz sistemde iki kere tablodan foreach işlemine bırakıyorsunuz. Buda mysql servisini ağırlaştırır.

Düzenlemiş olduğum kodu deneyebilir misin ?









// Gelen html taglarını veya script taglarını hepsini siliyorum ve boşlukları siliyorum
if (isset($_GET["kategori"])) {
$kategoriName = strip_tags(trim($_GET["kategori"]));
/*
$post = $db->query("SELECT * FROM urunler");
foreach($post as $rows){
$explode = explode(",",$rows["urunkate"]);

Kodları kaldırdım.
*/
// $NewSql = $db->prepare("SELECT * FROM urunler WHERE urunkate LIKE ?");
$NewSql = $db->prepare("SELECT * FROM urunler WHERE FIND_IN_SET(?,urunkate)");
$NewSql->execute(array("%" . $kategoriName . "%"));
$xx = $NewSql->fetch();
foreach ($NewSql as $rv) {
?>

}

}
?>



murattanbay

kişi bu mesajı beğendi.

sufyani sufyani WM Aracı Kullanıcı
  • Üyelik 23.11.2017
  • Yaş/Cinsiyet 54 / E
  • Meslek Grafik Tasarımcı / Coder
  • Konum İstanbul Anadolu
  • Ad Soyad S** B**
  • Mesajlar 101
  • Beğeniler 7 / 6
  • Ticaret 0, (%0)
Fikrin için sağol. Bir değişiklikle çalıştı.


$NewSql = $db->prepare("SELECT * FROM urunler WHERE urunkate LIKE ?");
$NewSql->execute(array($kategoriName));
foreach ($NewSql as $rv) {


Seninki de FIND_IN_SET parametresi çalışmadı. versiyon farkından olabilir mi acaba?

PHP 7.4
 

 

bydoqt0r bydoqt0r WM Aracı Kullanıcı
  • Üyelik 08.12.2013
  • Yaş/Cinsiyet 28 / E
  • Meslek Yazılım
  • Konum İstanbul Anadolu
  • Ad Soyad B** S**
  • Mesajlar 30
  • Beğeniler 6 / 3
  • Ticaret 0, (%0)
yoo, çalışması lazım. Mysql uyumlu birşey php'lik bir durum yok. Bir hata dönüyor mu ?
 

 

wmaraci
wmaraci

sufyani sufyani WM Aracı Kullanıcı
  • Üyelik 23.11.2017
  • Yaş/Cinsiyet 54 / E
  • Meslek Grafik Tasarımcı / Coder
  • Konum İstanbul Anadolu
  • Ad Soyad S** B**
  • Mesajlar 101
  • Beğeniler 7 / 6
  • Ticaret 0, (%0)
Boş dönüyor. Gerçi hatalar kapalı olabilir bakmadım.
 

 

bydoqt0r bydoqt0r WM Aracı Kullanıcı
  • Üyelik 08.12.2013
  • Yaş/Cinsiyet 28 / E
  • Meslek Yazılım
  • Konum İstanbul Anadolu
  • Ad Soyad B** S**
  • Mesajlar 30
  • Beğeniler 6 / 3
  • Ticaret 0, (%0)
örnek olarak
aşağıdaki resimde bulabilirsin.
hataların hepsini açmanı tavsiye ederim. Hatalar kapalı kalırsa ilerleyen süreçte çıkan sorunları bulamıyabilirsin. Anlık müdahale daima iyi

https://prnt.sc/vfpytz
 

 

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al