wmaraci reklam

Marka Cins Veya Numara Filtreleme Arama

4 Mesajlar 617 Okunma
smmexpress

tirtir tirtir WM Aracı Kullanıcı
  • Üyelik 15.02.2015
  • Yaş/Cinsiyet 33 / E
  • Meslek Webmaster
  • Konum İstanbul Avrupa
  • Ad Soyad Ç** T**
  • Mesajlar 28
  • Beğeniler 0 / 0
  • Ticaret 0, (%0)
erkek/?marka=26,1

arkadaşlar phpde , le ayırarak toplu bir şekilde arama yaptırmak nasıl oluyor checbox la tıklayıp gelen id değerlerini , le ayırıp ilişkili ürünleri göstermek maksadım
 

 

wmaraci
reklam

tiwaly tiwaly NodeJS / PHP / NoSQL Kullanıcı
  • Üyelik 10.10.2013
  • Yaş/Cinsiyet 34 / E
  • Meslek Yazılımcı
  • Konum İzmir
  • Ad Soyad i** A**
  • Mesajlar 363
  • Beğeniler 135 / 104
  • Ticaret 7, (%100)
explode ile virgül arasındaki sayıları diziye aktarıp ona göre sql sorgusu yapmanız gerekli.

$idler = explode(",",$_GET["marka"],-1);
$sorgu = "SELECT * FROM marka";
$i=0;

foreach($idler as $id){
$i++;
$sorgu .= " WHERE id =".$id;
if($i != count($idler){
$sorgu .= " AND ";
}

}
 

 

tirtir tirtir WM Aracı Kullanıcı
  • Üyelik 15.02.2015
  • Yaş/Cinsiyet 33 / E
  • Meslek Webmaster
  • Konum İstanbul Avrupa
  • Ad Soyad Ç** T**
  • Mesajlar 28
  • Beğeniler 0 / 0
  • Ticaret 0, (%0)
Kardeş Sağolsın şimdi aşşağıdaki şekilde istediğimi elde ettim ama bi sıkıntım daha var checbox yapısı nasıl olucak ? dizi halinde göndermek için ?


$markasorgugelen = $_GET["secim"];

$toplam = @explode(",",$markasorgugelen);

foreach ($toplam as $marka_ID_for_each) {

$urunvitrin = @mysql_query("SELECT * FROM urunler WHERE marka = '$marka_ID_for_each' ORDER BY urunid ASC ");

while($vitrin = @mysql_fetch_assoc($urunvitrin))
{

$urun_adi = @stripslashes($vitrin["urun_adi"]);


echo $urun_adi."
";
}
}

Ek Olarak: ha bide şöle bi olay var bende button submit olayı felan olmiyacak tıklanınca direk post ediilecek sayfaya değer kendini şunu bi çözsem ne güzel olur ya :D

Ek Olarak: Checkbox cheched olmuşsa yani tıklanmışsa üzerine tekrar tıkladığımda aynısını çağırıp duruyor 3,3,3,3,3 şeklinde ben mesela 1,2,3 seçilmişse 3 e tıkladığım zaman 1,2 olarak gelsin istiyorum
 

 

YazilimMimari YazilimMimari Eski adi: Turgay Can Kullanıcı
  • Üyelik 25.06.2012
  • Yaş/Cinsiyet 38 / E
  • Meslek Engineering Director
  • Konum İstanbul Avrupa
  • Ad Soyad T** C**
  • Mesajlar 771
  • Beğeniler 2 / 260
  • Ticaret 0, (%0)

tirtir adlı üyeden alıntı

Kardeş Sağolsın şimdi aşşağıdaki şekilde istediğimi elde ettim ama bi sıkıntım daha var checbox yapısı nasıl olucak ? dizi halinde göndermek için ?


$markasorgugelen = $_GET["secim"];

$toplam = @explode(",",$markasorgugelen);

foreach ($toplam as $marka_ID_for_each) {

$urunvitrin = @mysql_query("SELECT * FROM urunler WHERE marka = '$marka_ID_for_each' ORDER BY urunid ASC ");

while($vitrin = @mysql_fetch_assoc($urunvitrin))
{

$urun_adi = @stripslashes($vitrin["urun_adi"]);


echo $urun_adi."
";
}
}

Ek Olarak: ha bide şöle bi olay var bende button submit olayı felan olmiyacak tıklanınca direk post ediilecek sayfaya değer kendini şunu bi çözsem ne güzel olur ya :D

Ek Olarak: Checkbox cheched olmuşsa yani tıklanmışsa üzerine tekrar tıkladığımda aynısını çağırıp duruyor 3,3,3,3,3 şeklinde ben mesela 1,2,3 seçilmişse 3 e tıkladığım zaman 1,2 olarak gelsin istiyorum



Çalışır ama performanssız ve güvenlik faktörlerinden uzak bir şekilde..


parçalayıp aldığın'id leri for loop içinde neden dönüyorsun?


sorgunu ;

select * from urunler where marka_id in (1,2,3,5);

şeklinde yapıp tek sorgu atsan daha iyi değilmi ? ;)

Performans olarak oldukça farkeder..


Diğer açıdan aldığın değerleri hiç kontrol etmeden direkt sorguya vermişsin.. SQL Injection ağlıyor :)

$_GET["secim"]

secim'i kullanıcıdan alıyorsun.. Gönderilen secim parametresinin value değerini;

1,2,3,a -> diye göndersem sql exception alacaksın ve muhtemel exception handling yapmıyorsan, kaynak kod kabak gibi ortaya çıkacak,

sonrasında ;

1,2,3, or 1=1,4

gibi bir değer gönderdiğimde full urunleri getirmeye çalışacak, buda db'ye büyük bir yük demek bunu arka arkaya JMeter gibi bir tool ile anlık olarak 1000 istek gönderidğimde db'nin down olması demek.


Bence bunları bir düşün :)

iyi çalışmalar.
tiwaly

kişi bu mesajı beğendi.

https://www.linkedin.com/in/turgaycan/
Kaliteli kod yazılır.. (Günlük/Saatlik ücreti ile)
wmaraci
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