Не работает sql запрос,подскажите

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 8 июня 2014 в 01:50
Не могу понять, не работает значение < (вот тут id < $artc_id ), не могу вывести предыдущее значение,
следующее ( значение id > $artc_id )работает прекрасно.
id < $artc_id выводит всё время одно и то же значение, самое первое id в категории статей.
Подскажите пожалуйста.

  1.  
  2. /**********Number of Article and Number of its category*************/
  3. $artc_id = $inDB->get_field('cms_content',"seolink = '$seolink'",'id');
  4. $cat_id = $inDB->get_field('cms_content',"seolink = '$seolink'",'category_id');
  5. /***********************/
  6.  
  7. if ($do != 'read' || !$seolink) {return false;}
  8.  
  9.  
  10.  
  11. $prev = $inDB->get_fields('cms_content',"category_id = '$cat_id' AND id < $artc_id AND published = 1 ",'id,title,seolink,rating,hits');
  12. if($prev){
  13. $prev['image'] = (file_exists(PATH.'/images/photos/small/article'.$prev['id'].'.jpg') ? '/images/photos/small/article'.$prev['id'].'.jpg' : '/images/photos/no_image.png');
  14. $prevcontent[] = $prev;
  15. }
  16.  
  17. $next = $inDB->get_fields('cms_content',"category_id = '$cat_id' AND id > $artc_id AND published = 1 ",'id,title,seolink,rating,hits');
  18. if($next){
  19. $next['image'] = (file_exists(PATH.'/images/photos/small/article'.$next['id'].'.jpg') ? '/images/photos/small/article'.$next['id'].'.jpg' : '/images/photos/no_image.png');
  20. $nextcontent[] = $next;
  21. }
Хотел это вставить, думал исправит ситуацию, не знаю куда
  1. ORDER BY id DESC LIMIT 1
Пробовал так, не помогает
  1. $prev = $inDB->orderBy('id', 'DESC','LIMIT 1');
В начале я написал код так:
  1. /**********Number of Article and Number of its category*************/
  2. $artc_id = $inDB->get_field('cms_content',"seolink = '$seolink'",'id');
  3. $cat_id = $inDB->get_field('cms_content',"seolink = '$seolink'",'category_id');
  4. /***********************/
  5.  
  6. if ($do != 'read' || !$seolink) {return false;}
  7.  
  8. $prev_id =$inDB->get_field('cms_content',"category_id = '$cat_id' AND id < $artc_id ",'id');
  9. $next_id =$inDB->get_field('cms_content',"category_id = '$cat_id' AND id > $artc_id",'id');
  10.  
  11.  
  12. $prev = $inDB->get_fields('cms_content',"id = $prev_id AND published = 1 ",'id,title,seolink,rating,hits');
  13. if($prev){
  14. $prev['image'] = (file_exists(PATH.'/images/photos/small/article'.$prev['id'].'.jpg') ? '/images/photos/small/article'.$prev['id'].'.jpg' : '/images/photos/no_image.png');
  15. $prevcontent[] = $prev;
  16. }
  17.  
  18. $next = $inDB->get_fields('cms_content',"id = $next_id AND published = 1 ",'id,title,seolink,rating,hits');
  19. if($next){
  20. $next['image'] = (file_exists(PATH.'/images/photos/small/article'.$next['id'].'.jpg') ? '/images/photos/small/article'.$next['id'].'.jpg' : '/images/photos/no_image.png');
  21. $nextcontent[] = $next;
  22. }
#2 8 июня 2014 в 07:50
Всё просто. У метода get_fieldscms() есть 4-й параметр. Замените строку:
  1. $prev = $inDB->get_fields('cms_content',"category_id = '$cat_id' AND id < $artc_id AND published = 1 ",'id,title,seolink,rating,hits');
на
  1. $prev = $inDB->get_fields('cms_content',"category_id = '$cat_id' AND id < $artc_id AND published = 1 ",'id,title,seolink,rating,hits', "id DESC");
#3 8 июня 2014 в 08:41


Всё просто. У метода get_fieldscms() есть 4-й параметр. Замените строку:

  1. $prev = $inDB->get_fields('cms_content',"category_id = '$cat_id' AND id < $artc_id AND published = 1 ",'id,title,seolink,rating,hits');
на
  1. $prev = $inDB->get_fields('cms_content',"category_id = '$cat_id' AND id < $artc_id AND published = 1 ",'id,title,seolink,rating,hits', "id DESC");

Марат

Огромное спасибо Марат. Всё решилось.
#4 8 июня 2014 в 08:43
Проблема решена
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.