SESSION VERİ GÜNCELLEME
Merhaba session ile sepet oluşturdum herhangi bir sql kaydı yok
session da olan adeti nası güncellerim
if($_POST['islem'] == 'sepet-ekle'){
if(is_numeric($_POST['urun_id']) AND is_numeric($_POST['adet']) AND is_numeric($_POST['secenek_id'])){
if($_POST['adet'] < 1){
$_POST['adet'] = 1;
}
$urunquery = $db->prepare("SELECT * FROM urun where id=:id LIMIT 1");
$urun = $urunquery->execute(array(":id"=>$_POST['urun_id']));
$urun = $urunquery->fetch(PDO::FETCH_ASSOC);
if($urun){
if($_POST['secenek_id'] > 0){
$query = $db->prepare("SELECT * FROM urun_secenek_alt where id=:id LIMIT 1");
$alt_secenek = $query->execute(array(":id"=>$_POST['secenek_id']));
$alt_secenek = $query->fetch(PDO::FETCH_ASSOC);
if($alt_secenek){
if($_POST['adet'] > $alt_secenek['stok']){
echo 0;
}else{
$uniqid = $_POST['urun_id'].'-'.$_POST['secenek_id'];
$_SESSION['sepet']['urun_id'][$uniqid] = $_POST['urun_id'];
$_SESSION['sepet']['adet'][$uniqid] = $_POST['adet'];
$_SESSION['sepet']['secenek_id'][$uniqid] = $_POST['secenek_id'];
$_SESSION['sepet']['key'][$uniqid] = $uniqid;
echo 2;
}
}else{
echo 1;
}
}else{
if($_POST['adet'] > $urun['stok']){
echo 0;
}else{
$uniqid = $_POST['urun_id'];
$_SESSION['sepet']['urun_id'][$uniqid] = $_POST['urun_id'];
$_SESSION['sepet']['adet'][$uniqid] = $_POST['adet'];
$_SESSION['sepet']['secenek_id'][$uniqid] = 0;
$_SESSION['sepet']['key'][$uniqid] = $uniqid;
echo 2;
}
}
}else{
echo 1;
}
}else{
echo 1;
}
Merhaba Kodunda bulunan aşağıdaki bölümde işaretlediğim yeri değiştirmen çözüm olacaktır.
if($_POST['adet'] > $urun['stok']){
echo 0;
}else{
$uniqid = $_POST['urun_id'];
$_SESSION['sepet']['urun_id'][$uniqid] = $_POST['urun_id'];
$_SESSION['sepet']['adet'][$uniqid] = $_POST['adet'];
$_SESSION['sepet']['secenek_id'][$uniqid] = 0;
$_SESSION['sepet']['key'][$uniqid] = $uniqid;
echo 2;
}
$_SESSION['sepet']['adet'][$uniqid] = $_SESSION['sepet']['adet'][$uniqid]+$_POST['adet'];
burada session 'da tuttuğun veriyi sürekli post ettiğin veri ile güncelliyorsun dolayısı ile hep 1 olarak kalacaktır. Ancak posttan gelen veriyi üstüne eklemen gerekiyor.
burayı düzenlersen sonrasında birde eksiltme için koda ihityacın olacak.
Bir küçük dip not $_POST global değişkenlerini direk kullanmamanı tavsiye ederim.
bu şekilde bir fonksiyon tanımlarsan daha güzel olur.
php
/**
- @param $name
- @return string
*/
function post($name)
{
if (isset($_POST[$name]))
return htmlspecialchars(trim($_POST[$name]));
}