• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ذخیره اطلاعات در دیتابیس
#1
سلام
نمیدونم من حالم خوش نیست یا یه اتفاق دیگه ای افتاده که هنگ کردم

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

فرض اینکه کاربر 4 محصول برای خرید انتخاب کرده(فرض محال Smile )

برای هر محصول هم رنگ خاص ، سایز خاص ، تعداد خاصی رو انتخاب کرده

الان اینجا چجوری ذخیره کنیم توی دیتابیس اینارو؟
فرم رو ارسال کردیم حالا چطوری بفهمیم چی به چیه؟

ممنون میشم راهنماییم کنید ، یکم حولم بدید خودم بقیشو پا میزنم میرم Smile


فایل‌های پیوست تصاویر بندانگشتی
   
  پاسخ
تشکر شده توسط :
#2
کمکی؟ راهنمایی؟
  پاسخ
تشکر شده توسط :
#3
سلام،
یکم سوالت عجیبه Big Grin
الان توی سبد خرید چه جوری اطلاعات رو نشون میدی؟
فرمتی که ذخیره میکنی چه شکلی هست؟ منظورم اینه که توی سشن یا کوکی به چه صورت ذخیره میکنی؟ یه خروجی میزاری ببینیم؟
وقتی توی سبد خرید می‌تونی این‌ها رو از هم تفکیک کنی، چرا توی پایگاه داده مشکل داری؟
ساختار پایگاه داده‌ات چه جوریه؟
غایب
  پاسخ
تشکر شده توسط :
#4
سلامSmile
نقل قول:یکم سوالت عجیبه Big Grin
ما کلا توی کارهای عجیبیم کارمون هم عجیبهTongue

نقل قول:الان توی سبد خرید چه جوری اطلاعات رو نشون میدی؟
توی سیستم من به دو صورت محصولات وارد سبد میشه یکی بازدن دکمه اضافه به سبد (که در این صورت ای دی کالا به سبد فرستاده میشه و نمایش میده محصول رو و همزمان هم داخل سشن میریزه ایدی هارو ... )

دومی هم از جاییکه میری جزئیات محصول رو ببینی وارد میشی با زدن دکمه خرید و پرداخت که در این صورت فرم مربوطه محصول با جزئیات وارد سبد میشه (توجه کن که در صفحه جزئیات محصول فقط یک محصول داریم و فقط اون یدونه فرمش سابمیت میشه و اطلاعات انتخابی از جممله تعداد رنگ سایزش هم وارد سبد میشه
)

نقل قول:فرمتی که ذخیره میکنی چه شکلی هست؟ منظورم اینه که توی سشن یا کوکی به چه صورت ذخیره میکنی؟ یه خروجی میزاری ببینیم؟

ای دی ها داخل سشن ذخیره میشه و توی سبد هم نمایش داده میشه محصول ،

نقل قول:وقتی توی سبد خرید می‌تونی این‌ها رو از هم تفکیک کنی، چرا توی پایگاه داده مشکل داری؟
اره توی سبد خرید مشکلی ندارم مشکل اینجاست که وقتی محصولات به صورت خام وارد سبد میشن و خریدار اونجا میتونه رنگ و سایز و تعدادش رو تغییر بده اینجا مشکل دارم که چطوری اون محصول رو ذخیره کنم و بفرستم به دیتابیس با این فرض که الان 4 تا محصول داریم هر کدوم هم خصوصیات خودشو چجوری اینارو دسته بندی کنم و بفرستم دیتابیس؟
  پاسخ
تشکر شده توسط :
#5
ببین، مشکل اینجا هست که تو فقط داری آی‌دی محصول میفرستی به سبد خرید،
فرض کن کاربر بخواد از صفحه جزئیات محصول، یک محصولی رو به سبد خرید اضافه کنه، توی صفحه جزئیات یعنی نمیتونه رنگ و تعداد و ... رو انتخاب کنه؟ باید حتما وارد سبد خرید بکنه، بعد انتخاب کنه؟

به نظر من، ساختار سبد خریدت رو از تنها یه آی‌دی در بیار، به صورت آرایه ۲ بعدی ذخیره کن. که هم آی‌دی محصول رو بگیری، هم مشخصات دیگه‌ای که می‌خوای نگهداری، اینجوری اوکی میشه همه چی.

اون کد هم صادقانه بگم نخوندم اصلا Big Grin
غایب
  پاسخ
تشکر شده توسط :
#6
یک لحظه داداش به این تصاویر + توضیحات خوب دقت کن میفهمی الان مشکل رو

من به 2 حالت محصولات رو وارد سبد میکنم

1- از طریق صفحه اصلی ( مثل تصویر aval.png ) به این صورت که کاربر میاد فقط روی اضافه به سبد کلیک میکنه و محصول وارد سبد میشه اینجا که دیگه نمیتونه انتخاب رنگ سایز تعداد کنه پس میمونه برای صفحه سبد تا انتخاب کنه ، پس ماهم اینجا فقط به ای دی محصول نیاز داریم تا اونو توی سبد نشون بدیم (در واقع کاربر اونجا میتونه تمامی مقادیر رو تعیین کنه) تصویر صفحه صبد رو هم که بالا توی پست اول گذاشتم

2 -از طریق صفحه جزئیات محصول(مثل تصویر dovom.png)
به این صورت که کاربر اینجا چون داره جزئیات محصول رو میبینه از اینجا میتونه تعداد سایز و رنگ محصول رو انتخاب و وارد سبد کنه
اینجا انتقال محصول به صفحه سبد راحته فقط یک فرم سابمیت میشه که حاوی رنگ سایز تعداد و ای دی محصول هست که به صفحه سبد انتقال داده میشه

حالا توی صفحه سبد میخوام کاربر وقتی خواست پرداخت کنه این محصولات دیتابیس برای نمایش به ادمین ثبت بشه


به نظر من توی صفحه سبد همه سایز هارو به ارایه تبدیل کنم مثل size[] و بقیه هم همینطور
بعد توی صفحه ثبت بیام دونه دونه و به ترتیب وارد دیتابیس کنم
هااااااااااااااااااااااااااااااااا؟Big GrinBig Grin


فایل‌های پیوست تصاویر بندانگشتی
       
  پاسخ
تشکر شده توسط :
#7
به نظر من برای محصول یه سری مقدار دیفالت در نظر بگیر، به این صورت باشه که وقتی کاربر از روش اول محصول رو انتخاب کرد، جدای از فقط آی‌دی محصول، اون مقادیر دیفالت هم ارسال بشن به سبد خرید. اینجوری باز هم کاربر می‌تونه توی سبد خرید عوض کنه مقادیر رو.

یا اینکه اصلا نه، همون آی‌دی رو بفرست به سبد خرید، ولی اون آرایه ۲ بعدی رو، همونجا (توی سبد خرید) تولید کن که برای هر محصول چه مقادیری ثبت شده. نه؟
به هر حال تو باید یه آرایه ۲ بعدی درست کنی تا بتونی ارتباط بین مقادیر و کالاها رو نگهداری.
غایب
  پاسخ
تشکر شده توسط : kasbookar
#8
داداش بالاخره درستش کردم
ببین تحلیل درسته اینطوری و راحت حل میشد قضیه با یک ارایه تک بعدی
اول اومدم برای مثال ایدی محصولی رو که نیاز دارم به شکل ارایه توی صفحه خرید نشون دادم به این شکل
کد پی‌اچ‌پی:
<input type="hidden" name="id[]" id="id[]" value="'.$product['id'].'" /> 
کل فیلدهایی رو که نیاز دارم دیتابیس ثبت کنم به این شکل قرار دادم

بعد اومدم فرم رو سابمیت کردم و اونجا بررسی کردم که اعضای ارایه چنتا است به اینشکل

کد پی‌اچ‌پی:
foreach($_POST['id'] as $count)
{
    
$i++;


بعد از اینکه متوجه شدم تعداد ارایه چنتا است با توجه به اندیس هاشون همه مقادیرو کشیدم بیرون
به این شکل
کد پی‌اچ‌پی:
for($j=0;$j<=$i 1;$j++)
{
   echo 
$_POST['id'][$j].'---'.$_POST['size'][$j].'---'.$_POST['color'][$j].'<br />'
   
//بعد دستور اینسرت دیتابیس قرار میگیره و ارایه های بوجود اومدرو مقادیرشونو توی دیتابیس برای هر محصول ثبت میکنه


از اونجایی که وقتی فرم سابمیت میشه همه داده ها سریالی و پشت سرهم ارسال میشن پس مشکلی با این روش نیست نه؟
توی تست که درست جواب دادBig GrinBig GrinBig GrinBig GrinBig GrinBig Grin
  پاسخ
تشکر شده توسط :
#9
اینجوری هم میشه، من کلا به آرایه ۲ بعدی علاقه دارم. به نظرم تمیزتر در میاد.
این کد:
کد پی‌اچ‌پی:
foreach($_POST['id'] as $count)
{
    
$i++;

با تابع (count($arr جایگزین کن. تعداد عناصر آرایه رو برمیگردونه.
غایب
  پاسخ
تشکر شده توسط : kasbookar
#10
چشم اوستا Big GrinBig Grin
نقل قول:اینجوری هم میشه، من کلا به آرایه ۲ بعدی علاقه دارم
من عوض شما به تک بعدی خیلی علاقه دارم خیلی کارو آسون میکنه ولی حجم کار زیاد میشه برخلاف چند بعدی و دو بعدی
چه کنیم ماهم عاشقیم دیگهHeartHeart
  پاسخ
تشکر شده توسط : Alaa


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان