Example #1
0
<?php

$model = new waModel();
// correct tag counters
$sql = "\n    UPDATE `shop_tag` t JOIN (\n            SELECT t.id, t.name, t.count, COUNT(pt.product_id) AS product_count\n            FROM `shop_tag` t\n            LEFT JOIN `shop_product_tags` pt ON t.id = pt.tag_id\n            GROUP BY t.id\n    ) r ON t.id = r.id\n    SET t.count = r.product_count\n";
$model->exec($sql);
$sql = "\n    SELECT DISTINCT pt.tag_id\n    FROM `shop_product_tags` pt\n    LEFT JOIN `shop_tag` t ON pt.tag_id = t.id\n    WHERE t.id IS NULL\n";
// delete hanging product-tag items
$ids = array_keys($model->query($sql)->fetchAll('tag_id'));
if ($ids) {
    $shop_product_tag = new shopProductTagsModel();
    $shop_product_tag->deleteByField('tag_id', $ids);
}