#yii
#yii
Вопрос:
Вот мой запрос
$query= Yii::app()->db->createCommand()
->select('*,SUM(amount) AS TotalItemsOrdered')
->from('shoppinglist')
->where('user_type="Admin" ')
->group('cat_id,ing_id,measure_id')
->queryAll();
у меня есть дата начала с сегодняшнего дня, и я добавляю 6 дней к текущей дате, чтобы получить последнюю дату, т. Е. полную неделю, предположим
$startdate = «7-3-14»; //месяц-день-год
$enddate = «7-7-14»;
как я использую этот код Date BETWEEN DATE('$DateFrom_order') AND DATE('$DateTo_order')
или я использую в инструкции mysql, но как использовать or ember в приведенном выше запросе YII
Редактировать
ВОТ МОЯ МОДЕЛЬ
<?php
класс Shoppinglist расширяет CActiveRecord
{
public static function model($className=__CLASS__)
{
return parent::model($className);
}
public function tableName()
{
return 'shoppinglist';
}
/**
* @return array validation rules for model attributes.
*/
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
array('ing_id, measure_id, amount, user_id, cat_id, date_added, user_type', 'required'),
array('ing_id, measure_id, amount, user_id, cat_id', 'numerical', 'integerOnly'=>true),
array('user_type', 'length', 'max'=>5),
// The following rule is used by search().
// Please remove those attributes that should not be searched.
array('id, ing_id, measure_id, amount, user_id, cat_id, date_added, user_type', 'safe', 'on'=>'search'),
);
}
/**
* @return array relational rules.
*/
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
);
}
/**
* @return array customized attribute labels (name=>label)
*/
public function attributeLabels()
{
return array(
'id' => 'ID',
'ing_id' => 'Ing',
'measure_id' => 'Measure',
'amount' => 'Amount',
'user_id' => 'User',
'cat_id' => 'Cat',
'date_added' => 'Date Added',
'user_type' => 'User Type',
);
}
/**
* Retrieves a list of models based on the current search/filter conditions.
* @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
*/
public function search()
{
// Warning: Please modify the following code to remove attributes that
// should not be searched.
$criteria=new CDbCriteria;
$criteria->compare('id',$this->id);
$criteria->compare('ing_id',$this->ing_id);
$criteria->compare('measure_id',$this->measure_id);
$criteria->compare('amount',$this->amount);
$criteria->compare('user_id',$this->user_id);
$criteria->compare('cat_id',$this->cat_id);
$criteria->compare('date_added',$this->date_added,true);
$criteria->compare('user_type',$this->user_type,true);
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}
}
Комментарии:
1. пожалуйста, опубликуйте свою модель списка покупок, сгенерированную в Gii. Ваше решение не круто, мы должны использовать модель для сбора ваших данных
Ответ №1:
Если поле Date в базе данных имеет значение DATE (тип), то:
$query= Yii::app()->db->createCommand()
->select('*,SUM(amount) AS TotalItemsOrdered')
->from('shoppinglist')
->where("user_type='Admin' AND Date BETWEEN STR_TO_DATE( '$startdate', '%d-%m-%y' ) AND STR_TO_DATE( '$enddate', '%d-%m-%y' )")
->group('cat_id,ing_id,measure_id')
->queryAll();
Комментарии:
1. спасибо @psk $recipeIngs = Yii:: app()-> db-> createCommand() -> select(‘*,SUM (сумма) КАК TotalItemsOrdered’) -> from(‘список покупок’) ->where(«user_type=’Admin’ И (date_added МЕЖДУ ‘$currentDate’ И ‘$ending_date’)») -> group(‘cat_id, ing_id, measure_id’) ->queryAll();
2. Почему вы, ребята, используете yii so? … для меня похоже на SQL 😉 Опубликуйте свою модель, я сделаю это в 3 строки. Приветствия.
3. Я обновил свой вопрос с помощью модели, пожалуйста, дайте мне знать, как вы это делаете, в 3 строках 🙂