PDA

View Full Version : سبد خرید



mhd.ghavam
شنبه 02 بهمن 1389, 18:56 عصر
سلام دوستان عزیز
من دارم برای سایتم یک سبد خرید می نویسم و از اونجایی که تا به حال این کارو نکردم یه کمی به مشکل بر خوردم در ضمن خیلی وقته که دارم تو سایت های مختلف می گردم اما چیز درستی پیدا نکردم

در ضمن من php+mysql رو بلدم

مشکلم اینه که اولا نمی دونم روند درست پیاده سازیش چیه؟ من می خوام با session و دیتابیس اجراش کنم به طوری که اگر کاربر مهمان باشه و سفارش بده در session ذخیره بشه و بعد از این که لاگین کرد یا ثبت نام کرد سفارشش بره تو دیتا بیس اما با session ها کمی مشکل دارم نمی دونم اطلاعات رو چطوری توش ذخیره کنم به طور ساده مشکلی نیست اما برای ساخت سبد خرید نمی دونم چیکارش کنم لطفا کمی کمکم کنید و کامل مرسی از لطف همه گی

ayub_coder
شنبه 02 بهمن 1389, 19:47 عصر
شما میای یک تیبل میسازی با فیلدهای کد سشن ، آیدی یوزر ، کد کالا
حالا هروقت کاربر چیزی خرید کرد سشن آیدی و کد کالاتو به جدول اضافه می کنی. موقعی هم که کارش تمام شد میای تمام اطلاعاتی که سشن آیدی اونا واسه همین کاربه رو حذف می کنی
ساده ترین حالتش اینه

binyaft
شنبه 02 بهمن 1389, 21:58 عصر
ساده ترین حالتش اینه که همه چیز رو داخل سشن ذخیره کنید ، نیازی به پایگاه داده نیست!

farhadfery
شنبه 02 بهمن 1389, 22:11 عصر
این کتاب را بخوان. برای شروع نوشتن فروشگاه خوب
PHP_AND_MYSQL_WEB_DEVELOPMENT
Sams
Luke Welling and Laura Thamson

ghasemweb
شنبه 02 بهمن 1389, 22:59 عصر
اگه ميخواي سبد خريدت اصولي باشه به نظره من هم سيشن عاليه اگه به تايپيك زير يه نيگا بندازي متوجه ميشي

سبد خريد در php (http://barnamenevis.org/showthread.php?267462-%D8%B3%D8%A7%D8%AF%D9%87-%D8%AA%D8%B1%D9%8A%D9%86-%D8%B3%D8%A8%D8%AF-%D8%AE%D8%B1%D9%8A%D8%AF%D8%9F&highlight=)

mhd.ghavam
یک شنبه 03 بهمن 1389, 14:58 عصر
كاملا ممنون از كمك همگيتون اين چيز هايي كه گفتيد رو من بعضياشو مي دونستم بعضياشم كه خوب گفتيد مطالعه كنم حتما مطالعه مي كنم اما در واقع من يه جوراييم با آرايه مشكل دارم ميشه كمكم كنيد؟ ببينيد من به شكل زير عمل مي كنم

ببين وقتي كه يك نفر وارد سايت ميشه آدرس IP اونو تو session مي ريزم


$_SESSION[$ip]=$ip

بعد هم كه يك چيزي سفارش بده اين كارو مي كنم


$_SESSION[$ip]['code' ] = $codekala;

اما وقتي كه اين مقدار و مي خوام استفاده كنم اي چاپ كنم فقط حرف اول ذخيره شده چي كار بايد انجام بدم؟

ghasemweb
یک شنبه 03 بهمن 1389, 17:15 عصر
شما ميتوني به جاي ارايه از رشته استفاده كني و كد كالا و تعداد و هر مقدار ديگه اي رو تو يه رشته بريزي. اگه با تابع implode و explode اشنا باشي مشكلت حل ميشه .

اگه خواستي يه نمونه ميذارم استفاده كني

binyaft
یک شنبه 03 بهمن 1389, 20:17 عصر
نیازی به این کار نیست که شما بیای IP هم ذخیره کنی!
به صورت زیر عمل کنید ، نباید مشکلی باشه

$_SESSION['shop']=$kala;

mhd.ghavam
دوشنبه 04 بهمن 1389, 16:02 عصر
نیازی به این کار نیست که شما بیای IP هم ذخیره کنی!
به صورت زیر عمل کنید ، نباید مشکلی باشه

$_SESSION['shop']=$kala;

بسیار ممنون از پاسختون اما اگر یک نفر بخواد 5تا کالا رو خرید کنه چطور می تونم کد کالا رو در

mhd.ghavam
دوشنبه 04 بهمن 1389, 16:03 عصر
نیازی به این کار نیست که شما بیای IP هم ذخیره کنی!
به صورت زیر عمل کنید ، نباید مشکلی باشه

$_SESSION['shop']=$kala;


بسیار ممنونم از پاسختون اما اگر یک نفر بخواد 5تا کالا رو سفارش بده چطوری|؟ کد کالاها رو در session ذخیره کنم؟ و چطوری بازیابیش کنم؟

mhd.ghavam
دوشنبه 04 بهمن 1389, 16:05 عصر
شما ميتوني به جاي ارايه از رشته استفاده كني و كد كالا و تعداد و هر مقدار ديگه اي رو تو يه رشته بريزي. اگه با تابع implode و explode اشنا باشي مشكلت حل ميشه .

اگه خواستي يه نمونه ميذارم استفاده كني

متأسفانه تاحالا با این ها کار نکردم آشنایی زیادیم ندارم میشه کمکم کنید؟

binyaft
دوشنبه 04 بهمن 1389, 17:14 عصر
میتونی داخل سشن یک ارایه ایجاد کنی و یا به رشته تبدیل کنی و بعد با explode استفاده کنی

برای ارایه



<?php

$array=array();

$_SESSION['shop']=array_push($array,$kala);


print_r($array);

?>


برای رشته هم


<?php

$_SESSION['shop'].=$kala.'|';

$array=explode('|',$_SESSION['shop']);

echo $array[0];
echo $array[1];



?>

بنده روش ارایه رو پیشنهاد میکنم

farhadfery
دوشنبه 04 بهمن 1389, 21:59 عصر
این کتاب را بخوان. برای شروع نوشتن فروشگاه خوب
PHP_AND_MYSQL_WEB_DEVELOPMENT
Sams
Luke Welling and Laura Thamson

اگر این کتاب را که گفتم می خوندی به جواب خیلی از سوالات می رسیدی. چون یه فروشگاه ساده را پیاده سازی کرده. که برای شروع خوبه. اما حالا نرفتی دنبالش. پس حداقل به لینک زیر یه سری بزن:
http://www.insanelyart.com/tutorial.php?id=168#

farhadfery
دوشنبه 04 بهمن 1389, 22:06 عصر
یه کتاب دیگه هم به شما معرفی کنم. که البته می دونم اکثر افراد آنرا خوانده اند.
Beginning PHP and MySQL E-Commerce
َApress
Cristian Darie and Emilian Balanescu

خوبی این کتاب اینکه شی گرا کار کرده. و 3 لایه را کامل توضیح می ده . برای اینکه اطلاعات بیشتری در مورد این کتاب کسب کنی، یه سری به سایت Apress بزن. کد کتاب هم از خود سایت می تونی دانلود کنی.

farhadfery
دوشنبه 04 بهمن 1389, 22:15 عصر
یه کتاب دیگه هم هست. الان یادم افتاد نام ببرم.
نام: PHP 5 E-commerce Development
توضیح: Create a flexible framework in PHP for a powerful ecommerce solution
لینک کتاب تو خود سایت packt publishing
https://www.packtpub.com/php-5-e-commerce-development/book

می بینی چه کتاب های خوبی هست. اما ما استفاده لازم را نمی کنیم:عصبانی++:

ghasemweb
دوشنبه 04 بهمن 1389, 22:48 عصر
ببینید شما باید اولش با تابع implode و explode اشنا بشی واسه همین به مثال زیر توجه کن :


<?php
$c[1]="tehran";
$c[2]="tabriz";
$c[3]="zanjan";
$c[4]="shiraz";
$str=implode(':',$c);
echo $str; // $str="tehran:tabriz:zanjan:shiraz";

$city=explode(':',$str);
foreach ($city as $value)
echo '<br>'.$value;

?>

کد رو اجرا کن نتیجه رو مشاهده کن بعدش یه کم روش تفکر کن با این دو تابع میتونی به راحتی تو سیشن یه سبد خرید پیاده کنی مثلا تو سیشن میخوای کد کالا و قیمت و تعداد رو ذخیره کنی باید مثل رشته زیر رو ایجاد کنی:


$_SESSION['shop']="code1:price1:count1|code2:price2:count2"

هر کالا با کالای دیگه با علامت | از هم جدا میشه و بعدش هم جزئیات هر کالا هم با : که میتونی به دلخواه خودت عوضش کنی.
امیدوارم منظورمو گرفته باشی

farhadfery
سه شنبه 05 بهمن 1389, 00:17 صبح
این هم یه کتاب دیگه از نویسنده نام آشنا Larry Ullman. که خودم شخصاً خیلی برای ایشان ارزش و احترام قائلم.
کتاب جدیدی را ایشان چاپ کرده . که البته متاسفانه شی گرا نیست. اما برای شروع خوبه.
Effortless E-Commerce with PHP and MySQL
Copyright © 2011 by Larry Ullman
Larry Ullman

Find us on the Web at: www.newriders.com (http://www.newriders.com)

binyaft
سه شنبه 05 بهمن 1389, 09:54 صبح
جناب farhadfery ، به نظر بنده اینها کتابهای خوبی هستند ، ی تاپیک جداگانه درست کنید و کتاب ها رو معرفی کنید شاید بدرد بقیه دوستان هم بخوره!

mhd.ghavam
یک شنبه 10 بهمن 1389, 19:13 عصر
ببینید شما باید اولش با تابع implode و explode اشنا بشی واسه همین به مثال زیر توجه کن :


<?php
$c[1]="tehran";
$c[2]="tabriz";
$c[3]="zanjan";
$c[4]="shiraz";
$str=implode(':',$c);
echo $str; // $str="tehran:tabriz:zanjan:shiraz";

$city=explode(':',$str);
foreach ($city as $value)
echo '<br>'.$value;

?>

کد رو اجرا کن نتیجه رو مشاهده کن بعدش یه کم روش تفکر کن با این دو تابع میتونی به راحتی تو سیشن یه سبد خرید پیاده کنی مثلا تو سیشن میخوای کد کالا و قیمت و تعداد رو ذخیره کنی باید مثل رشته زیر رو ایجاد کنی:


$_SESSION['shop']="code1:price1:count1|code2:price2:count2"

هر کالا با کالای دیگه با علامت | از هم جدا میشه و بعدش هم جزئیات هر کالا هم با : که میتونی به دلخواه خودت عوضش کنی.
امیدوارم منظورمو گرفته باشی


سلام دوست گرامی بسیار ممنوم از کمکت من این کارو کردم اما الان به این مشکل برخوردم که وقتی که می خوام سبد خرید رو نشون بدم یک فیلد اضافی هم چاپ میکنه نمی دونم چطوری میشه که اینجور میشه و همچنین برای حذف کالا الان یکمی مشکل دارم کمکم کنید من این کد هارو استفاده کردم

موقعی که کسی سفارشی میده با این کد ذخیره می کنم


$_SESSION['shop'].= "|".$_POST['sefaresh'];


و برای نمایش هم از این کد


<?php
$codes = explode("|",$_SESSION['shop']);
echo '<table >';
foreach($codes as $value)
{
$sql = "select * from kala where codekala='".$value."'";
$result = mysql_query($sql,$con);
$row = mysql_fetch_assoc($result);

echo "<tr>";
echo "<td>";
echo $row['namekala'];
echo "</td>";

echo "<td>";
echo $row['price'];
echo "</td>";


echo "<td>";
?>
<a href="#" onclick="del(<?php echo $value; ?>)"><img src="include/op/b_drop.png" /></a>

<?php
echo "</td>";

echo "</tr>";

$kol += $row['price'];


}
echo "</table>";
echo "<br />قیمت کل: ";
echo $kol;


?>

ghasemweb
یک شنبه 10 بهمن 1389, 23:40 عصر
اما الان به این مشکل برخوردم که وقتی که می خوام سبد خرید رو نشون بدم یک فیلد اضافی هم چاپ میکنه نمی دونم چطوری میشه که اینجور میشه

این بدین خاطره که شما باید در قسمت اضافه کردن کالای جدید به طرز زیر عمل کنید :

if($_SESSION['shop']=="")
$_SESSION['shop']=$_POST['sefaresh'];
else
$_SESSION['shop'].= "|".$_POST['sefaresh'];

دلیلش هم به خاطر علامت | اضافی بود که در سیشن سبد درج میشد مثلا |1|2|3|4|5 که دارای 5 کالا هست ولی باید همیشه جدا کننده یکی کمتر باشه تا درست دربیاد.


همچنین برای حذف کالا الان یکمی مشکل دارم کمکم کنید

برای حذف راههای مختلفی هست ولی من این روش رو پیشنهاد میکنم البته اولش تو کد خودتون اصلاح زیر رو انجام بدید :

<a href="#" onclick="del(<?php echo $value; ?>)"><img src="include/op/b_drop.png" /></a>
که به جاش اینو بذار:

<a href="p1.php?do=delete&code=<?php echo $value; ?>"><img src="../images/amar.gif" /></a>
شما به جای p1.php اسم صفحه خودتون که این کد توش هست رو بذار و سپس کد زیر رو بالا صفحه اضافه کن :


<?php

if(!isset($_SESSION))
{
session_start();
}

if(isset($_GET['do']) && $_GET['do']=='delete' && isset($_GET['code']))
{
$codes=explode('|',$_SESSION['shop']);
echo $codes;
$newShop='';
$p=0;
foreach($codes as $value)
{
if($value!=$_GET['code'])
{
$newShop[$p++]=$value;
}
}
$_SESSION['shop']=implode($newShop,'|');
}
?>

موفق باشید

ghasemweb
دوشنبه 11 بهمن 1389, 11:42 صبح
راستی به جای خط آخر کد قبل از آکولاد { کد مریوط به implode هست رو با کد زیر جایگزین کن چون اگر بخوای آخرین کالای سبد رو حذف کنی این خط رو خطا میگیره کد زیر این خطا رو برطرف میکنه:


if($p>0)
$_SESSION['shop']=implode($newShop,'|');
else
$_SESSION['shop']="";