Arkadaşlar cookie ve session kullanımlarını öğrendim fakat alış veriş sepeti yapımını bilmiyorum.Bu konuda yardımcı olurmusunuz, şimdiden teşekkürler.
ajaxla yapılmış güzel uygulamalar var.google grupladından ajax grubuna bakabilirsiniz.
php.org.tr den aldığım cevabı sizinle paylaşmak istedim. ALINTI: basit bir şekilde anlatayım
1. ürünlerimizin oldugu bir tablomuz olsun
id | kod | UrunIsmi | Fiyat |
2. sepet diye bir tablomuz olsun
id | sepetId | kod | UrunIsmi | Fiyat | kimlik | Adet |
ürünlerimizi listeledigimiz bir php sayfamız oldugunu düşün ve sepete at tuşu oldugunu her ürünün yanında
ürün tablosundaki ürün id mizde bizim anahtar degerimiz olacak ürün tablomuza
id: 4 kod : 200-E Urun ismi : php kitabı fiyatı : 20.00 (YTL) veya ($)
şimdi ürünümüzün gösterildigi sayfada sepete at tuşuna basılınca yapılacak işlemi yazıyoruz
<a href='?islem=ekle&at=4&kod=200-E'>sepete at</a> ürün id mizi link olarak atadık
/// if yapsını deneme olsun yazdım daha düzgün bir if yazılabilir
if(!empty($at) and $islem=='ekle'){
function Sepet($at,$kimlik); }
function Sepet($at,$kimlik){
/// öncelikle sepet tablomuza gidip gelen id deki ürünün sepete olup olmadıgını bulalım sepetid alanında bizim ürünümüzün aynısından olup olmadıgını kontrol ediyoruz ve kimlik alanındada bu ürünü bizmi sepete attık yoksa başka bir kullanıcımı onu kontrol edecegiz
$sql= mysql_query("select * from sepet where sepetId='$at' and kimlik='$kimlik' "); $kayit=mysql_num_rows($sql);
/// eger sepetid alanımzda bizim ürünmüzü tutan ve bizim kimligimize ait bir kayıt var ise sadece kaydı update edecegiz
if($kayit>='1'{
/// sadece adeti +1 yapıyoruz burda eger ekleme adeti gibi bir input da gönderecek olursak ona göre bir düzenlemede yapabiliriz.
mysql_query("UPDATE sepet SET adet =adet+1 WHERE sepetid='$at' and kimlik='$kimlik' ");
echo mysql_error();
} else{ //// eger bu ürün bizim tablomuzda yok ise bu ürünü sepet tablosunu yazıyoruz
/// id si tutan ürünün bilgileri select sorgusu ile alacagız
$Kayitsql= mysql_query("select * from urun where id='$at' "); $row=mysql_fetch_array($Kayitsql);
/// gelen bilgileri mysql deki sepet tablomuza yazacagız
mysql_query("INSERT INTO sepet (sepetid,kod,urunismi,fiyat,adet,kimlik) VALUES ('".$row['id']."','".$row['kod']."','".$row['urunismi']."','".$row['fiyat']."','1','$kimlik')"); echo mysql_error();
/// 1 adet olarak ürünümüzü sepete ekledik
} }
/// Sepet function umuzda ürünü sepete ekleme ve ürün sepete var ise sadece adetini güncelleme işlemini yaptık
şimdi yapacagımız işlem septeki 1 ürünü silmek olacak
<a href='?islem=sil&at=4'>sil</a>
if(!empty($at) and $islem=='sil'){
function SepetUrunSil($at,$kimlik); }
function SepetUrunSil($at,$kimlik){
/// bize ait olan ürünü sepetten siliyoruz
mysql_query("DELETE FROM sepet WHERE sepetid='$at' and kimlik='$kimlik'");
//// burdaki silme işlemini geliştirebilirizde tek tek silme yerine çoklu bir silmede yapabiliriz silme işlemini checkbox lar üzeründen yapıp yazacagımız bir for döngüsüyle çoklu silme işlemi yapabiliriz
/// çoklu bir silme için örnek yazmak gerkirse /// diyelim sepeteki ürünlerimizin karşılıklarında ////<input name="sil[]" type="checkbox" value="4"> ////<input name="sil[]" type="checkbox" value="5"> gibi bir checkbox alanlarımız var
for ($i= 0; $i<count($at) ; $i++ ) { mysql_query("DELETE FROM sepet WHERE sepetid='$at[$i]' and kimlik='$kimlik'"); } /// çoklu silme işlemi bitti bu kısım sizin terchinize kalmış
}
şimdi sepetimizdeki tamamen tüm ürünleri silme işlemi yapacagız
< a href='?islem=bosalt&at=4'>Sepeti Boşalt</a> if(!empty($at) and $islem=='bosalt'){
function SepetTemizle($at,$kimlik); }
function SepetTemizle($at,$kimlik){
/// kimlik bilgisi bize ait olan tüm ürünleri sepet tablosundan temizliyoruz mysql_query("DELETE FROM sepet WHERE kimlik='$kimlik'");
}
sepet görüntümüzde diyelim 5 kalem ürün satır olarak sıralanmış
1 inci ürün php kitabı adet:1 adet hanesi diyelim input alanında ve içinde 1 adet yazıyor 2. inci ürünümüz yemek kitabı adet:3 buda input içinde 3 adet olarak yazıyor sepet sayfasında biz bu php kitabı olan ürünü 2 adet yapmak istiyoruz bunun için yapacagımı işlem
php kitabı : value degeri 1 olma sebebi adet alanı içinde yazan deger 1 olması sebebiyle <input type="text" name="adet[]" value='1'>
ve bu hangi ürün id sine aitse hidden bir alan daha koyuyoruz
value degeri 4 olma sebebi sepetid içindeki degeri yazmış olmamız <input name="at[]" type="hidden" value="4">
şimdi php kitabı ve diger kitapların adetlerini sepet içinde update yapıyoruz
< a href='?islem=guncelle>Güncelle </a>
if($islem=='guncelle'){
function SepetGuncelle($at,$adet,$kimlik);
}
function SepetGuncelle($at,$adet,$kimlik){
for ($i= 0; $i<count($at) ; $i++ ) { mysql_query("UPDATE sepet SET adet =adet+$adet[$i] WHERE sepetid='$at[$i]' and kimlik='$kimlik' "); }
sepet.php mizde bilgilerimizi ekrana yazdırmak için
$sql= mysql_query("select * from sepet where kimlik='$kimlik' "); while($row=mysql_fetch_array($sql)){
// burda sepet tablosundan alacagımız degerleri yazıyoruz ve tabiki fiyat toplamları gibi işlemleride yapıyoruz }
Sana anlatabileceklerim bu kadar yazı ve kodlar düzgün olmamış olabilir çünkü pot içindeki editore direkt yazdım ama bir sepet mantıgı böyle oluyor benim bildigim umarım anlatabilmişimdir.
he bu arada kimlik bir diye bir degermiz var o ne diye soracak olursan $kimlik sitemiz başına koyacagımız session kimlik diye bir session acacaksın yani
konunun üstünden 5 yıl geçmiş ama arkadaşlar kusura bakmayın yeni konuda açamadım yeni üye olduğum için sizden bi ricam olucak ben yeni yeni php öğreniyorum bu session ile veya üyelik sistemiyle alışveriş sepeti yapmak istiyorum satış filan olmuyacak sadece sepete ekle, sil, adet güncelle olacak ne olur yardım :( bu arada hayırlı cumalar....