رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
جمع تعداد خرید یک محصول (حل شد)
#1
سلام
من جدولی دارم به اسم OrderProducts که تعداد محصولاتی که در هر سفارش هست رو ذخیره میکنه و سه تا فیلد داره :

order_id
product_id
quantity
دو فیلد اول به جداول مختص خودشون وصل میشن ..

چجوری میتونم جمع کل تعداد خرید های یک محصول رو بخونم ...
مثلا محصول شماره 1 یه بار 3 تا خرید داشته .. یه بار یه دونه ... در حال حاضر همون ردیف اول رو برام نشون میده یعنی 3 ..
! WORK HARD
پاسخ
تشکر شده توسط:
#2
یه فیلد public به مدل OrderProducts اضافه کنید به اسم total$ و بعد، با این کد تعداد خریدهای یه محصول رو بدست بیارین:
$total = Orderproducts::model()->find(array(
    'select' => 'sum(quantity) as total',
    'condition' => product_id=:pid',
    'params' => array(':pid'=>$product->id),
))->total;
پاسخ
تشکر شده توسط: Mohammad Salehi
#3
متاسفانه خطا میده و نمیتونم دلیلش رو پیدا کنم ..
! WORK HARD
پاسخ
تشکر شده توسط:
#4
پیغام خطایی که میده چیه؟
پاسخ
تشکر شده توسط: Mohammad Salehi
#5
نقل قول:
Parse error: syntax error, unexpected '(', expecting ',' or ';' in C:\xampp\htdocs\mediabase\protected\controllers\ProductsController.php on line 5

سیستم انجمن بک اسلش ها رو حذف میکنه
! WORK HARD
پاسخ
تشکر شده توسط:
#6
دوبار بک اسلش بزنید.
پاسخ
تشکر شده توسط:
#7
خوب خطا داره میگه توی خط 5 ProductsController انتظار پرانتز باز نداشته. کدتون رو چک کنید.
پاسخ
تشکر شده توسط: Mohammad Salehi
#8
public $total = Orderproducts::model()->find(array(
        'select' => 'sum(quantity) as total',
    'condition' => 'product_id=:pid',
    'params' => array(':pid'=>$product->id)))->total;

این کد منه ...
! WORK HARD
پاسخ
تشکر شده توسط:
#9
خوب این اشتباهه. توی مدل فقط باید بنویسید:
public $total;

و دستوری که گفتم رو توی کنترلر بنویسید.
پاسخ
تشکر شده توسط: Mohammad Salehi
#10
نقل قول:

Parse error: syntax error, unexpected 'Orderproducts' (T_STRING), expecting function (T_FUNCTION) in C:\xampp\htdocs\mediabase\protected\controllers\ProductsController.php on line 5
این خطا رو میده ...
! WORK HARD
پاسخ
تشکر شده توسط:
#11
وقتی خطا میده، کدی که گذاشتین رو هم بنویسید. بعد این چرا داره تو خط 5 خطا میده؟ فیلد رو توی مدل تعریف کنید و دقیقاً کدی که گفتم رو توی اکشنی که میخواین جمع فروش کالاها رو داشته باشین بنویسید. خارج از متدها ننویسین.
پاسخ
تشکر شده توسط:
#12
خب این خطا مشکلش حل شد ..
حالا مشکلی که پیش اومده اینه که چیزی بر نمیگردونه ..
من فیلد total رو تعریف کردم توی مدل Orderproducts

این کد هم توی کنترلر تعریف کردم :

public function actionView($id)
    {
        $products = $this->loadModel($id);

        Orderproducts::model()->find(array(
            'select' => 'sum(quantity) as total',
            'condition' => 'product_id=:pid',
            'params' => array(':pid' => $products->id)))->total;
}

توی View هم با این کد سعی میکنم total رو نمایش بدم :

echo Orderproducts::model()->total;

اما چیزی بر نمیگردونه .. فقط با print_r یه 1 چاپ کرد! که البته اشتباهه ..
! WORK HARD
پاسخ
تشکر شده توسط:
#13
نه نباید اینطوری کار کنید. باید این شکلی باشه:

توی کنترلر:
public function actionView($id)
{
    $model = $this->loadModel($id);
    $total = Orderproducts::model()->find(array(
        'select' => 'sum(quantity) as total',
        'condition' => 'product_id=:pid',
        'params' => array(':pid' => $products->id)
    ))->total;
    $this->render('view', compact('model', 'total'));
}

و توی ویو:
echo $total;
پاسخ
تشکر شده توسط:
#14
خب این کار رو هم انجام دادم و این خطا رو داد :

کد:
Error 500
Undefined variable: total
! WORK HARD
پاسخ
تشکر شده توسط:
#15
متغیر total$ رو مطمئنید برای ویو فرستادین؟ اگه توی ویو، یه ویوی فرعی رو با renderPartial صدا زدین، دوباره باید total$ رو برای اونهم بفرستین.
پاسخ
تشکر شده توسط:




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