есть query_builder
есть метод в модели:
public function getClip($category)
{
$query_result = DB::select('clips.id', 'artist', 'clips.name', 'date', 'pic_url', 'width_mini', 'height_mini', array('name_rus', 'category'), array('category.name', 'cat_name'), 'views', 'comments')
->from('clips')
->join('category')
->on('clips.category_id', '=', 'category.id')
->order_by('clips.id','DESC')
->limit('5')
->where('category.name', '=', $category)
->execute()
->as_array();
return $query_result;
}
как сделать, чтобы метод where не вызывался, когда передается пустая $category и вызывался, когда передается не пустая.
Спустя 14 минут, 51 секунда (20.08.2011 - 00:16) Renden написал(а):
Хыхы, для чайников так для чайников %)))
А насамом деле интересно как :)
public function getClip($category)
{
if(!empty($category))
$query_result = DB::select('clips.id', 'artist', 'clips.name', 'date', 'pic_url', 'width_mini', 'height_mini', array('name_rus', 'category'), array('category.name', 'cat_name'), 'views', 'comments')
->from('clips')
->join('category')
->on('clips.category_id', '=', 'category.id')
->order_by('clips.id','DESC')
->limit('5')
->where('category.name', '=', $category)
->execute()
->as_array();
else
$query_result = DB::select('clips.id', 'artist', 'clips.name', 'date', 'pic_url', 'width_mini', 'height_mini', array('name_rus', 'category'), array('category.name', 'cat_name'), 'views', 'comments')
->from('clips')
->join('category')
->on('clips.category_id', '=', 'category.id')
->order_by('clips.id','DESC')
->limit('5')
->execute()
->as_array();
return $query_result;
}
А насамом деле интересно как :)
Спустя 2 минуты, 22 секунды (20.08.2011 - 00:19) Krevedko написал(а):
гениально ! вот пока ходил, делал себе кофеек, думал еще , что зря не написал , чтобы этот вариант не предлагали

Спустя 4 минуты, 52 секунды (20.08.2011 - 00:24) Renden написал(а):
Krevedko
Хахаха, %)) А нельзя при обращении к методам условия ставить? Я просто никогда не пробывал.
Да вообще че ты заморачиваешься то?)
Хахаха, %)) А нельзя при обращении к методам условия ставить? Я просто никогда не пробывал.
->if(!empty($category)) where('category.name', '=', $category)
Да вообще че ты заморачиваешься то?)
Спустя 9 минут, 21 секунда (20.08.2011 - 00:33) inpost написал(а):
! |
inpost |
Спустя 11 минут, 52 секунды (20.08.2011 - 00:45) Renden написал(а):
inpost
Офтоп:
Он в прикол, че ты
Офтоп:
Свернутый текст
Цитата |
Давайте вменяемые названия вашим темам. За названия тем: Помагите 3 сутки не сплю!! и им подобные буду раздавать баны, а сами темы закрывать. |
Он в прикол, че ты

Спустя 1 минута, 50 секунд (20.08.2011 - 00:47) Krevedko написал(а):
Цитата (Renden @ 19.08.2011 - 21:24) |
Krevedko Хахаха, %)) А нельзя при обращении к методам условия ставить? Я просто никогда не пробывал.
Да вообще че ты заморачиваешься то?) |
нельзя.
а ты не заморчаиваешься ? или ты при подготовке sql запроса в похожей ситуации напишешь два почти одинаковых запроса ?
или по умному...что-то типа
if($category)
$where = 'WHERE `category.name`= ' . $category)';
else
$where = '';
...
$sql = 'SELECT * FROM `clips` ' . $where;
$result = mysql_query($sql);
не ? ты два запроса влепишь ?
я изначально не хочу говнокодить. но меня бесит, когда я на такую туфту трачу по 6 часов.
Спустя 2 минуты, 32 секунды (20.08.2011 - 00:49) Renden написал(а):
Krevedko
Я сделаю почти так как ты написал, да , я тя понимаю, сам иногда заморачиваюсь чтоб было все красиво и тп..., но помоему других вариантов тут нет..
Зы в последнее время я просто начал помечать те участки кода над которыми надо подумать вплане оформления\оптимизации, но пишу так чтоб работало, оптимизирую уже потом, иначе с мысли сбиваешься той что ты хотел сделать и кучу времени тратишь на фигню..
Я сделаю почти так как ты написал, да , я тя понимаю, сам иногда заморачиваюсь чтоб было все красиво и тп..., но помоему других вариантов тут нет..
Зы в последнее время я просто начал помечать те участки кода над которыми надо подумать вплане оформления\оптимизации, но пишу так чтоб работало, оптимизирую уже потом, иначе с мысли сбиваешься той что ты хотел сделать и кучу времени тратишь на фигню..
Спустя 9 минут, 5 секунд (20.08.2011 - 00:58) Krevedko написал(а):
та сделал уже два запроса, пошел дальше. может Семен вернется-подскажет.
Спустя 30 минут, 2 секунды (20.08.2011 - 01:28) Invis1ble написал(а):
Krevedko
Не работал с коханой, да и вообще с фреймворками толком не работал. По логике по идее так можно:
Если не работает, то поищи в документации, по идее должен быть какой-нить метод типа addWhere(), по крайней мере я баловался с symfony - там вроде был такой.
PS. Я конечно все понимаю, старожил и все такое, но название темы все-таки нужно сменить
Не работал с коханой, да и вообще с фреймворками толком не работал. По логике по идее так можно:
public function getClip($category)
{
$obj = DB::select('clips.id', 'artist', 'clips.name', 'date', 'pic_url', 'width_mini', 'height_mini', array('name_rus', 'category'), array('category.name', 'cat_name'), 'views', 'comments')
->from('clips')
->join('category')
->on('clips.category_id', '=', 'category.id')
->order_by('clips.id','DESC')
->limit('5');
if (!empty($catagory))
$obj = $obj->where('category.name', '=', $category);
$query_result = $obj->execute()->as_array();
return $query_result;
}
Если не работает, то поищи в документации, по идее должен быть какой-нить метод типа addWhere(), по крайней мере я баловался с symfony - там вроде был такой.
PS. Я конечно все понимаю, старожил и все такое, но название темы все-таки нужно сменить