Перейти к содержимому


Фото
- - - - -

Загрузка товара при импорте


Best Answer chocolate_moles , 06.04.2020 - 22:33

а уже на текущем сайте не получится их перевернуть?

 

создаете .php файл в корне сайта и запускаете

<?php

require_once('api/Simpla.php');

class Ajax extends Simpla
{
    function fetch()
    {
        $this->db->query('SELECT id, position FROM __products');
        
        $results = array();
        foreach($this->db->results() as $r)
            $results[$r->id] = $r->position;

        $keys = array_keys($results);
        $values = array_values($results);
        $reversed = array_reverse($values);
        $new_positions = array_combine($keys, $reversed);

        foreach($new_positions as $id=>$position)
            $this->db->query('UPDATE __products SET position=? WHERE id=? LIMIT 1', $position, $id);
    }
}

$ajax = new Ajax();
$result = $ajax->fetch();

header("Content-type: application/json; charset=UTF-8");
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("X-Robots-Tag: noindex");
header("Pragma: no-cache");
header("Expires: -1");
exit;
Перейти к посту


  • Чтобы отвечать, сперва войдите на форум
7 ответов в теме

#1 megauser

megauser
  • Пользователь
  • 155 сообщений
  • Дизайн, Заказчик, Пользователь
  • Откуда:Россия

Опубликовано 06.04.2020 - 20:20

Есть такая проблема, после того как импортировал со старого сайта и загрузил на новый, товары все встали задом наперед, из за этого выводятся старые новинки и прочее. Можно как то сделать чтоб товары были загружены также как на старом сайте? Вручную перетаскивать конечно муторно ,может как то можно по базе провести запросом? или на стороне экселя попробовать перекинуть поля. Товаров 9 тыс.



#2 shooroop

shooroop
  • Фрилансер
  • 1 122 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Antarktida

Опубликовано 06.04.2020 - 21:13

через эксель проще



#3 chocolate_moles

chocolate_moles
  • Фрилансер
  • 504 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Санкт-Петербург

Опубликовано 06.04.2020 - 21:53

Например, открываете phpmyadmin старого сайта, делаете запрос(вкладка SQL)

SELECT position FROM s_products

- внизу выбираете "отметить все", далее "экспорт"

- метод экспорта - обычный

- использовать оператор при сохранении данных - UPDATE

- вперед

- открываете полученный файл, выбираете все строки типа

UPDATE `s_products` SET `position` = 1 WHERE `s_products`.`position` = 1;
UPDATE `s_products` SET `position` = 2 WHERE `s_products`.`position` = 2;
UPDATE `s_products` SET `position` = 3 WHERE `s_products`.`position` = 3;
... 

и на новом сайте вставляете их в запрос



#4 megauser

megauser
  • Пользователь
  • 155 сообщений
  • Дизайн, Заказчик, Пользователь
  • Откуда:Россия

Опубликовано 06.04.2020 - 21:58

Например, открываете phpmyadmin старого сайта, делаете запрос(вкладка SQL)

SELECT position FROM s_products

- внизу выбираете "отметить все", далее "экспорт"

- метод экспорта - обычный

- использовать оператор при сохранении данных - UPDATE

- вперед

- открываете полученный файл, выбираете все строки типа

UPDATE `s_products` SET `position` = 1 WHERE `s_products`.`position` = 1;
UPDATE `s_products` SET `position` = 2 WHERE `s_products`.`position` = 2;
UPDATE `s_products` SET `position` = 3 WHERE `s_products`.`position` = 3;
... 

и на новом сайте вставляете их в запрос

 

а уже на текущем сайте не получится их перевернуть?



#5 shooroop

shooroop
  • Фрилансер
  • 1 122 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Antarktida

Опубликовано 06.04.2020 - 22:30

а уже на текущем сайте не получится их перевернуть?

 

в Sql не важен порядок строк. этот порядок задается в запросе  ORDER BY


Изменено: shooroop, 06.04.2020 - 22:34


#6 chocolate_moles

chocolate_moles
  • Фрилансер
  • 504 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Санкт-Петербург

Опубликовано 06.04.2020 - 22:33

а уже на текущем сайте не получится их перевернуть?

 

создаете .php файл в корне сайта и запускаете

<?php

require_once('api/Simpla.php');

class Ajax extends Simpla
{
    function fetch()
    {
        $this->db->query('SELECT id, position FROM __products');
        
        $results = array();
        foreach($this->db->results() as $r)
            $results[$r->id] = $r->position;

        $keys = array_keys($results);
        $values = array_values($results);
        $reversed = array_reverse($values);
        $new_positions = array_combine($keys, $reversed);

        foreach($new_positions as $id=>$position)
            $this->db->query('UPDATE __products SET position=? WHERE id=? LIMIT 1', $position, $id);
    }
}

$ajax = new Ajax();
$result = $ajax->fetch();

header("Content-type: application/json; charset=UTF-8");
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("X-Robots-Tag: noindex");
header("Pragma: no-cache");
header("Expires: -1");
exit;


#7 megauser

megauser
  • Пользователь
  • 155 сообщений
  • Дизайн, Заказчик, Пользователь
  • Откуда:Россия

Опубликовано 06.04.2020 - 23:54

создаете .php файл в корне сайта и запускаете

<?php

require_once('api/Simpla.php');

class Ajax extends Simpla
{
    function fetch()
    {
        $this->db->query('SELECT id, position FROM __products');
        
        $results = array();
        foreach($this->db->results() as $r)
            $results[$r->id] = $r->position;

        $keys = array_keys($results);
        $values = array_values($results);
        $reversed = array_reverse($values);
        $new_positions = array_combine($keys, $reversed);

        foreach($new_positions as $id=>$position)
            $this->db->query('UPDATE __products SET position=? WHERE id=? LIMIT 1', $position, $id);
    }
}

$ajax = new Ajax();
$result = $ajax->fetch();

header("Content-type: application/json; charset=UTF-8");
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("X-Robots-Tag: noindex");
header("Pragma: no-cache");
header("Expires: -1");
exit;

 

Спасибо!



#8 Flexcore

Flexcore
  • Пользователь
  • 67 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 07.04.2020 - 01:39

Спасибо!

Вам это не поможет потому как новинки сортируются не по позиции, а по дате создания товара, то есть у вас всегда будет наоборот.
По этому рекомендую отсортировать товары в экселе, после импортировать на сайт.




0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых