Veri içindeki bir bölümü silme
10
●1.007
- 31-12-2012, 17:17:57arkadaşlar sepet uygulaması yapıyorum da uyenin sepet sütununda urun idlerini giriorum 1,2,3,4,5 şekilde her eklediğinde update ile urun id i giriyorum oraya ama silme işlemini beceremedim? yani 1,2,3,4,5 id lerinden 3 numarayı silip 1,2,4,5 nasıl güncelleyebilirim databasede?
- 01-01-2013, 12:48:58sanirim derdimi yanlis anlattim
-id-----ad----soyad----sepet
-1-----xxx----xxxxx-----1,2,3,4
tablo bu benim istegim 1 nolu id deki musterinin sepetinde bulunan 1,2,3,4 nolu urunlerden mesela 3u silmek
musteri her sepete ekle dediginde urun idsini sepet sutununa X, seklinde ekliyor ama silme islemini nasil yaparim bilemedim? - 01-01-2013, 14:40:54Inputu hidden verip valuesini ürün idini yazarsiniz mysql komutu ile silebilirsinizulast adlı üyeden alıntı: mesajı görüntüle
<input type="hidden" name="urunid" value="<?php echo $urunid;?>"> <?php $id=intval($_POST["urunid"]); if($_POST){ $sil=mysql_query("DELETE FROM urunler WHERE id='$id'"); } ?> - 01-01-2013, 15:44:44sepet alanı nedir? varchar mıdır?
ya mysql replace kodu ile sileceksin.
ki 10 dan fazla ürün oldu mu sepette arıza çıkarabilir mysql replace işinde.
ya da php ile sepeti alacaksın, explode ile parçalayıp elemanları dizi yapacaksın. ve silinecek elemanı kaldırıp, implode edip database e tekrar yazacaksın. - 01-01-2013, 21:46:08Kusura bakmazsani biraz ornekle aciklayabilirmisiniz mantigini anladim ama beceremedim_BuKi_ adlı üyeden alıntı: mesajı görüntüle
- 01-01-2013, 21:57:33
$deger = '1,2,3,4,5'; $silinecek = '3'; $dizi = explode(',',$deger); $dizison = array_diff($dizi,$silinecek); $sondeger = implode(',',$dizison);denemedim ama, olmazsa düzenleyebiliriz. bu tarz bi mantık kullanılabilir.
ek olarak:
array_diff kullandık, bu aslında silme işlemi değil iki dizinin birbirinden farkını buluyor. o nedenle şöyle bir düzenleme yapalım:
$deger = '1,2,3,4,5'; $silinecek = array('3'); $dizi = explode(',',$deger); $dizison = array_diff($dizi,$silinecek); $sondeger = implode(',',$dizison);
sepet sistemi yapmak istemistim db e baglı ama yapamadım herhalde