malesef hocam yine olmadı foreach de hata var zaten => olan yer as olacaktı duzelttim foreach ile tek şekilde ayrıştıramam 4 alan array olarak geliyor iç içe foreach mi yoksa başka bişemi olacak cozemedim foreach içinde for denedim yine olmadı. hep birinci veriyi kaydetti.

yasarkemaldag adlı üyeden alıntı: mesajı görüntüle
if (!empty($adet)) { 
for($i=0;$i<count($urunid);$i++){

	if ($check[$i] == '1')
	{
		$toplam = $urunfiyati[$i]*$adet[$i];
		$query = mysql_query("INSERT INTO siparisler (urunid,urunadi,spverenbayi,bayiadi,urunfiyati,sptarih,unixtarih,saat,adet,toplam,onay) VALUES ('$urunid[$i]','$urunadi[$i]','$bayiid','$bayiadi','$urunfiyati[$i]','$tarih','$unixtarih','$saat','$adet[$i]','$toplam','0')"); 
	}
} 

echo "<script>"; 
            echo "alert('Destek ticketi başarı ile oluşturuldu.');"; 
            echo "window.close();"; 
            echo 'window.location.href="siparisonayi.php"'; 
            echo "</script>"; 

}
bu şekilde dener misiniz ?

eğer olmazsa alternatif olarak şöyle bir yol deneyebilirsiniz.

html kısmında dizi olarak post edilen tüm inputların namelerine ürün id yide eklersiniz yani örneğin şu şekilde:

<input value="1" id="stok2<?=$gosterurun['id'];?>" name="check[<?=$gosterurun['id'];?>]" type="checkbox">
daha sonra php kısmında ise döngünüzü şu şekile yaparsınız.

foreach ($check => $urun_id => $value){

}
bu döngüde $urun_id degiskeni ürün id sini value ise check olup olmadığını verir if ($value == '1') gibi bir şartlada insert işleminizi yapabilirsiniz.