Оставить только одну картинку в карточке товара
Разрабатывая интернет магазин на Prestashop, я столкнулся с такой проблемой, что мне стало необходимо удалить дубли картинок у карточек товара.
Это произошло из-за повторного импорта одних и тех же товаров, в следствии чего картинок стало очень много, так как количество товаров в моем интернет магазине более 100 тысяч. Но успел я импортировать только 60к товарчиков к счастью, тем самым получив по 2 лишних дубля картинки каждого из шестидесяти касарей товаров. 60*2=120к лишних картинок в среднем которые весят по 30кб, если говорить в гигабайтах, то это 3,6гб.
Так вот:
В любой файл вы вставляете данный скрипт и все работает.
Саша подскажи заебал куда там че.
for($i = 1; $i<10000; $i++) {
$data = Db::getInstance()
->getRow(‘SELECT `id_product`, group_concat(`id_image` SEPARATOR \’, \’) AS ids, count(`id_product`) AS cnt FROM ps_image GROUP BY `id_product` HAVING cnt > 1′,
false);
$image_id = explode(‘,’, $data[‘ids’]);
if (is_numeric($image_id[1])) {
foreach($image_id as $l => $image_idr){
if($l == 0) continue;
$image = new Image((int)$image_idr);
$image->delete();
}
}
}
Данный скрипт позволит оставить одну единственную картинку карточки товара.