megauser Опубликовано 6 апреля, 2020 Жалоба Поделиться Опубликовано 6 апреля, 2020 Есть такая проблема, после того как импортировал со старого сайта и загрузил на новый, товары все встали задом наперед, из за этого выводятся старые новинки и прочее. Можно как то сделать чтоб товары были загружены также как на старом сайте? Вручную перетаскивать конечно муторно ,может как то можно по базе провести запросом? или на стороне экселя попробовать перекинуть поля. Товаров 9 тыс. Цитата Ссылка на сообщение Поделиться на другие сайты
shooroop Опубликовано 6 апреля, 2020 Жалоба Поделиться Опубликовано 6 апреля, 2020 через эксель проще Цитата Ссылка на сообщение Поделиться на другие сайты
chocolate_moles Опубликовано 6 апреля, 2020 Жалоба Поделиться Опубликовано 6 апреля, 2020 Например, открываете 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; ... и на новом сайте вставляете их в запрос Цитата Ссылка на сообщение Поделиться на другие сайты
megauser Опубликовано 6 апреля, 2020 Автор Жалоба Поделиться Опубликовано 6 апреля, 2020 Например, открываете 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; ... и на новом сайте вставляете их в запрос а уже на текущем сайте не получится их перевернуть? Цитата Ссылка на сообщение Поделиться на другие сайты
shooroop Опубликовано 6 апреля, 2020 Жалоба Поделиться Опубликовано 6 апреля, 2020 (изменено) а уже на текущем сайте не получится их перевернуть? в Sql не важен порядок строк. этот порядок задается в запросе ORDER BY Изменено 6 апреля, 2020 пользователем shooroop Цитата Ссылка на сообщение Поделиться на другие сайты
Решение chocolate_moles Опубликовано 6 апреля, 2020 Решение Жалоба Поделиться Опубликовано 6 апреля, 2020 а уже на текущем сайте не получится их перевернуть? создаете .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; Цитата Ссылка на сообщение Поделиться на другие сайты
megauser Опубликовано 6 апреля, 2020 Автор Жалоба Поделиться Опубликовано 6 апреля, 2020 создаете .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; Спасибо! Цитата Ссылка на сообщение Поделиться на другие сайты
Flexcore Опубликовано 6 апреля, 2020 Жалоба Поделиться Опубликовано 6 апреля, 2020 Спасибо!Вам это не поможет потому как новинки сортируются не по позиции, а по дате создания товара, то есть у вас всегда будет наоборот. По этому рекомендую отсортировать товары в экселе, после импортировать на сайт. Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.