megauser Posted April 6, 2020 Report Share Posted April 6, 2020 Есть такая проблема, после того как импортировал со старого сайта и загрузил на новый, товары все встали задом наперед, из за этого выводятся старые новинки и прочее. Можно как то сделать чтоб товары были загружены также как на старом сайте? Вручную перетаскивать конечно муторно ,может как то можно по базе провести запросом? или на стороне экселя попробовать перекинуть поля. Товаров 9 тыс. Quote Link to post Share on other sites
shooroop Posted April 6, 2020 Report Share Posted April 6, 2020 через эксель проще Quote Link to post Share on other sites
chocolate_moles Posted April 6, 2020 Report Share Posted April 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; ... и на новом сайте вставляете их в запрос Quote Link to post Share on other sites
megauser Posted April 6, 2020 Author Report Share Posted April 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; ... и на новом сайте вставляете их в запрос а уже на текущем сайте не получится их перевернуть? Quote Link to post Share on other sites
shooroop Posted April 6, 2020 Report Share Posted April 6, 2020 (edited) а уже на текущем сайте не получится их перевернуть? в Sql не важен порядок строк. этот порядок задается в запросе ORDER BY Edited April 6, 2020 by shooroop Quote Link to post Share on other sites
Solution chocolate_moles Posted April 6, 2020 Solution Report Share Posted April 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; Quote Link to post Share on other sites
megauser Posted April 6, 2020 Author Report Share Posted April 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; Спасибо! Quote Link to post Share on other sites
Flexcore Posted April 6, 2020 Report Share Posted April 6, 2020 Спасибо!Вам это не поможет потому как новинки сортируются не по позиции, а по дате создания товара, то есть у вас всегда будет наоборот. По этому рекомендую отсортировать товары в экселе, после импортировать на сайт. Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.