Форум русской поддержки Joomla!® CMS
04.12.2016, 03:58:04 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Порядковый номер артикула

 (Прочитано 319 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 949



« : 20.05.2015, 09:10:06 »

Как сделать порядковый номер артикула
код такой
Код:
<?php  //AUTO product_sku
    echo '<input type="text" class="inputbox" name="product_sku" id="product_sku" value="';
          if ($this->product->product_sku) $val_sku= $this->product->product_sku;
                    else {
                        $db_sku = JFactory::getDBO();
                        $q_sku = 'SELECT `product_sku` FROM #__virtuemart_products ORDER BY `product_sku` DESC LIMIT 1';
                        $db_sku->setQuery($q_sku);
                        $db_sku->next_record();
                        $val_sku = intval($this->product->virtuemart_product_id)+rand(intval($this->product->product_id), 9999);
                          }
    echo $val_sku.'" size="32" maxlength="64" />';
?>
меняю в /administrator/components/com_virtuemart/views/product/tmpl/product_edit_information.php
артикул присваивает по разному не по порядку.
как сделать так чтоб он его присваивал по порядку 
Записан
motokraft
Живу я здесь
******

Репутация: +72/-13
Offline Offline

Сообщений: 1436


« Ответ #1 : 20.05.2015, 09:28:23 »

в базе данных id записи указываются по порядку, можно все эти записи сортировать по возрастанию и к последнему плюсуй 1....
Записан
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 949



« Ответ #2 : 20.05.2015, 09:29:45 »

то есть так
Код:
$q_sku = 'SELECT `product_sku` FROM #__virtuemart_products ORDER BY `product_sku` DESC LIMIT +1';
то сохраняет 4021 потом пере сохраняю 2336
« Последнее редактирование: 20.05.2015, 09:32:53 от Stasweb » Записан
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 949



« Ответ #3 : 20.05.2015, 09:34:48 »

Сделал так
Код:
<?php  //AUTO product_sku
    echo '<input type="text" class="inputbox" name="product_sku" id="product_sku" value="';
          if ($this->product->product_sku) $val_sku= $this->product->product_sku;
                    else {
                        $db_sku = JFactory::getDBO();
                        $q_sku = 'SELECT `product_sku` FROM #__virtuemart_products ORDER BY `product_sku` DESC LIMIT 1';
                        $db_sku->setQuery($q_sku);
                        $db_sku->next_record();
                        $val_sku = intval($this->product->virtuemart_product_id)+rand(intval($this->product->product_id), +1);
                          }
    echo $val_sku.'" size="32" maxlength="64" />';
?>
теперь присваивает 138 - 139 а потом 137 два раза подряд
Записан
motokraft
Живу я здесь
******

Репутация: +72/-13
Offline Offline

Сообщений: 1436


« Ответ #4 : 20.05.2015, 09:39:46 »

При создании материала создается артикл, вместо его выводи id последней записи и прибавляй 1, не используй sql запрос для формирования артикла...
Записан
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 949



« Ответ #5 : 20.05.2015, 09:41:42 »

как это сделать вот стандартный запрос
<input type="text" class="inputbox" name="product_sku" id="product_sku" value="<?php echo $this->product->product_sku; ?>" size="32" maxlength="64" />
Записан
motokraft
Живу я здесь
******

Репутация: +72/-13
Offline Offline

Сообщений: 1436


« Ответ #6 : 20.05.2015, 09:45:14 »

А какой вид артикла формируется....
Записан
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 949



« Ответ #7 : 20.05.2015, 09:47:47 »

Если так
Код:
<input type="text" class="inputbox" name="product_sku" id="product_sku" value="<?php echo $this->product->product_sku; ?>" size="32" maxlength="64" />
то вообще пусто
Записан
motokraft
Живу я здесь
******

Репутация: +72/-13
Offline Offline

Сообщений: 1436


« Ответ #8 : 20.05.2015, 09:54:52 »

Да нееее, не код формирования, а как он сам выглядит на странице...
Записан
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 949



« Ответ #9 : 20.05.2015, 09:59:57 »

Вот скрин

id товара есть а артикул поля пустое
Записан
motokraft
Живу я здесь
******

Репутация: +72/-13
Offline Offline

Сообщений: 1436


« Ответ #10 : 20.05.2015, 10:10:49 »

Я сейчас с телефона сежу, полный код првести не могу. Но SQL запросом надо вывести id последней записи, укажи LIMIT 1, так выводится одна последняя запись а не все в сортированном виде...
Получив id последней записи, надо прибавить +1 и записать в поле. При сохранении товара все что в этом поле будет использоваться как артткл....

Можно еще отдельно генерировать две буквы в начале....
Записан
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 949



« Ответ #11 : 20.05.2015, 10:20:27 »

А тут разве не так
Код:
if ($this->product->product_sku) $val_sku= $this->product->product_sku;
 else {
 $db_sku = JFactory::getDBO();
 $q_sku = 'SELECT `product_sku` FROM #__virtuemart_products ORDER BY `product_sku` DESC LIMIT 1';
 $db_sku->setQuery($q_sku);
 $db_sku->next_record();
 $val_sku = intval($this->product->virtuemart_product_id)+rand(intval($this->product->product_id), +1);
     }
 echo $val_sku.'" size="32" maxlength="64" />';
?>
Записан
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 949



« Ответ #12 : 20.05.2015, 10:55:53 »

РЕШИЛ ОСТАВИТЬ ТАК ПО ТЕСТИРУЮ НА НОВЫХ ТОВАРАХ
Код:
<?php  //AUTO product_sku
 echo '<input type="text" class="inputbox" name="product_sku" id="product_sku" value="';
 if ($this->product->product_sku) $val_sku= $this->product->product_sku;
 else {
 $db_sku = JFactory::getDBO();
 $q_sku = 'SELECT `product_sku` FROM #__virtuemart_products ORDER BY `product_sku` DESC LIMIT 1';
 $db_sku->setQuery($q_sku);
 $db_sku->next_record();
 $val_sku = intval($this->product->virtuemart_product_id)+rand(intval($this->product->product_id), +1);
     }
 echo $val_sku.'" size="32" maxlength="64" />';
?>
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet