مشکل با سبد خرید با سشن

foranyone

Well-Known Member
حذف کامل سبد خرید :

PHP:
function remove_basket(){
session_start();
unset($_SESSION['article']);
}

افزودن به سبد خرید :

PHP:
function add_basket($art_id,$order="0"){
if(isset($art_id)){
session_start();
$c=0;
if(is_array($_SESSION['article'])){
foreach($_SESSION['article'] as $key)
if($key['art_id']==$art_id)
$c=1;
}
if($c==0)
$_SESSION['article'][] = array("art_id" => $art_id,"order" => $order);
}
show_basket();
}



نمایش سبد خرید :


PHP:
function show_basket(){
session_start();
if(is_array($_SESSION['article'])){

echo("<pre>");
print_r($_SESSION['article']);
echo("</pre>");

foreach($_SESSION['article'] as $key){
echo($key['art_id']."   ".$key['order']);
echo("<br />");
}    
}
}

آرایه سشن سبد خرید :

Array
(
[0] => Array
(
[art_id] => 120
[order] => 1
)

[1] => Array
(
[art_id] => 132
[order] => 2
)

[2] => Array
(
[art_id] => 142
[order] => 3
)

)


حالا فرض کنید بخوام یک مورد رو حذف کنم برای مثال 142 و 3

باید چطوری بنویسم ؟ هرکاری کردم نشد ....یه جایی اشتباه میکنم ...




 

meysam-fathi

Active Member
اگه art_id آیدی محصول باشه و order تعداد باشه
بهتره آرایه خودتو اینجوری بسازی
PHP:
$bskt[art_id]=order ;
 

Masoud1365

مدیر انجمن
آرایه رو باید 2 بعدی بگیری واسه سبد خرید . اینو ببین iniis.com ( یادش بخیر خیلی وقت پیش نوشتمش ) اگر سبد خریدش همونه که میخوایی بگو تا کدهاشو پیدا کنم بزارم اینجا .
 

foranyone

Well-Known Member
تو سبد خرید فروشگاه فقط ای دی محصول در سشن ذخیره بشه کافیه

من اینجا از مفهوم سبد خرید استفاده میکنم برای یه کار غیرفروشگاهی ...

تفاوت کارم اینه :

ای دی

و ترتیب باید در سشن ذخیره شه ...
 

foranyone

Well-Known Member
مشکلمو اینجوری حل کردم :

PHP:
<?php

function remove_basket(){
session_start();
unset($_SESSION['art_id']);
}
//--------------------------------------
function add_basket($art_id,$order){
session_start();
$c=0;
if(is_array($_SESSION['art_id'])){
    foreach($_SESSION['art_id'] as $key){
    $value=explode(",",$key);
    if($value[0]==$art_id)
    $c=1;
    }
}//if is_array
if($c==0)
$_SESSION['art_id'][]="$art_id,$order";
else if($c==1){
for($i=0;$i<count($_SESSION['art_id']);$i++){
    $value=explode(",",$_SESSION['art_id'][$i]);
    if($value[0]==$art_id)
    $_SESSION['art_id'][$i]="$art_id,$order";
}
}
}
//-----------------------------------------
function del_basket($art_id){
session_start();
$keys=array_keys($_SESSION['art_id']);
foreach($keys as $key){
$value=explode(",",$_SESSION['art_id'][$key]);
if($value[0]==$art_id)
unset($_SESSION['art_id'][$key]);
}
}

function art_array(){
unset($art_array);
session_start();
if(is_array($_SESSION['art_id'])){
foreach($_SESSION['art_id'] as $key){
$value=explode(",",$key);
$art_array[]=$value[0];
}
}
return $art_array;
}
//---------------------------------------
function show_basket(){
session_start();
if(is_array($_SESSION['art_id'])){
foreach($_SESSION['art_id'] as $key)
echo $key."<br />";
}
}
//---------------------------------------
function art_order($art_id){
session_start();
$keys=array_keys($_SESSION['art_id']);
foreach($keys as $key){
$value=explode(",",$_SESSION['art_id'][$key]);
if($value[0]==$art_id)
$val=($_SESSION['art_id'][$key]);
}
$value=explode(",",$val);
return $value[1];
}

//--------------------------------------

function basket_num(){
session_start();
if(is_array($_SESSION['art_id']))
return count($_SESSION['art_id']);
else return 0;

}
?>
 
آخرین ویرایش:

foranyone

Well-Known Member
اگه پست اولم رو ببینی از آرایه دو بعدی استفاده کرده بودم :

PHP:
$_SESSION['article'][] = array("art_id" => $art_id,"order" => $order);

ولی چون تو پیاده سازی به مشکل برخوردم طبق پست بالاییم الگریتمم رو تغییر دادم .

گفتم که این کد فروشگاه نیست به خاطر همین فقط از مفهوم سبد باید استفاده میکردم اینجا ترتیب اشیا برام مهم بود

که طرف مرتب کنه و بعد با همون ترتیب ذخیرش کنه .

ممنون مسعود جان مشکل کاملا حل شد .
 

meysam-fathi

Active Member
به عنوان یه پیشنهاد
Cubecart.com
یه CMS فروشگاه سازه عایه
من باهاش زیاد کار کردم
سشن رو تو دیتا بیس سریالاز میکنه و ذخیره میکنه.
اگه به کدش یه نگاه بندازی بدک نیست .
 

جدیدترین ارسال ها

بالا