Какую таблицу базы данных изменить, чтобы иметь бестселлер в интернет-магазине? - PullRequest
0 голосов
/ 19 октября 2010

У меня есть небольшой опыт работы с таблицами базы данных, но я не могу прочитать db_query Я считаю, что есть запрос, который должен включить продукт в качестве бестселлера и поместить его в скроллер. Я хочу подделать бестселлер, потому что при открытии интернет-магазина с пустым списком бестселлеров это выглядит немного глупо.

Я вручную изменил таблицу "products_ordered" и изменил столбец продуктов на 3 (как, например, продукт заказан 3 раза), но в скроллере ничего не происходит. Что мне делать дальше?

Что я делаю не так?

Это запрос:

$best_sellers_scroll_query = tep_db_query("select distinct p.products_id, 
pd.products_description, p.products_image, p.products_price, 
p.products_tax_class_id, pd.products_name from " .              
TABLE_PRODUCTS . " p, " . 
    TABLE_PRODUCTS_DESCRIPTION . " pd, " . 
    TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . 
    TABLE_CATEGORIES . " c where p.products_status = '1' and 
p.products_ordered > 0 and p.products_id = pd.products_id and 
pd.language_id = '" . 
    (int)$languages_id . "' and p.products_id = p2c.products_id and 
p2c.categories_id = c.categories_id and '" . 
    (int)$current_category_id . "' in (c.categories_id, c.parent_id) 
order by p.products_ordered desc, pd.products_name limit " . 
MAX_DISPLAY_BESTSELLERS_SLIDER);

Это слайдер. Js

  var prepare_slider = function(x_cols, x_dur){

      var x_pos = 0;
      var li_items_n = 0;   
      var li_col = $('slider_list').getElements('li');

      li_col.each(function(li, index){
          size = li.getSize();
          x_pos += size.x;
          li_items_n++;
      })

      $('slider_list').setStyle('position','relative');
      $('slider_list').setStyle('left','0px');
      $('slider_list').setStyle('width', x_pos+'px');
      /*  alert("The element is "+size.x);  */

      var myFx = new Fx.Tween($('slider_list'), {transition: 
Fx.Transitions.Sine.easeOut, duration:x_dur});
      myFx.addEvent('start', function(){ is_playing = true; });
      myFx.addEvent('complete', function(){ is_playing = false; });

      var is_playing = false;

      $('left').addEvent('click', function(){
          cur_offset = $('slider_list').getStyle('left').toInt();
          if (!is_playing && ((cur_offset + size.x) <= 0)) 
myFx.start('left',   cur_offset + size.x + 'px');
      });

      $('right').addEvent('click', function(){
          var is_playing = false;
          cur_offset = $('slider_list').getStyle('left').toInt();
          if (!is_playing && ((cur_offset - size.x) 
>= (x_cols*size.x-x_pos) )) myFx.start('left', cur_offset - size.x + 'px'); 
      });   
  }

Итог свалки:

string(179) "4' and p.products_id = p2c.products_id 
and p2c.categories_id = c.categories_id and '0' in (c.categories_id, 
c.parent_id) order by p.products_ordered desc, 
pd.products_name limit 1" 1064 - 
You have an error in your SQL syntax; check the manual that 
corresponds to your MySQL server version for the right syntax to 
use near ''0' at line 1

select distinct p.products_id, pd.products_description, 
p.products_image, p.products_price, p.products_tax_class_id, 
pd.products_name from products p, products_description pd, 
products_to_categories p2c, categories c where 
p.products_status = '1' and p.products_ordered > 0 and 
p.products_id = pd.products_id and pd.language_id = '0

[TEP STOP]

1 Ответ

0 голосов
/ 19 октября 2010

Вы должны проверить, почему по запросу не найдено товаров:

  • Узнайте, какой продукт был там, где вы изменили столбец products_ordered (ищите products_id)
  • Проверьте, имеет ли этот продукт products_status = 1
  • Проверьте, есть ли в таблице products_description запись с такими же products_id и language_id вашим текущим языком (выполните var_dump($languages_id))
  • Проверьте, есть ли запись в таблице products_to_categories, которая имеет те же products_id и categories_id вашей текущей категории (выполните var_dump($current_category_id))
  • Проверьте, существует ли эта категория в таблице categories
  • Проверьте, если MAX_DISPLAY_BESTSELLERS_SLIDER > 0

  • Проверьте, работает ли ваш слайдер, заменив «WHERE» на «WHERE TRUE OR»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...