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.