radrigo 180 Опубликовано: 15 марта 2019 Рассказать Опубликовано: 15 марта 2019 Всем привет. С самого начала на сайте стоит рейтинг "Оценка" и хотелось бы перейти на "Нравится и Не нравится", но обнулять не хочется. Подскажите, может возможно при помощи SQL запроса пересчитать рейтинг для лайков и дизлайков? Например если поставили 1 и 2 звезды, то дизлайк, а если 3, 4, 5 то лайк. Заранее признателен за подсказку. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 081 Опубликовано: 17 марта 2019 Рассказать Опубликовано: 17 марта 2019 В 16.03.2019 в 00:08, radrigo сказал: Подскажите, может возможно при помощи SQL запроса пересчитать рейтинг для лайков и дизлайков? Нет не получится. Цитата Ссылка на сообщение Поделиться на других сайтах
radrigo 180 Опубликовано: 21 марта 2019 Рассказать Опубликовано: 21 марта 2019 (изменено) Автор В 17.03.2019 в 12:44, celsoft сказал: Нет не получится. Один добрый человек сказал, что получится и показал как это сделать. Нужно создать файл со следующим содержимым и запустить его. <?php ##### By SKYNET74 ###### @error_reporting(E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE); @ini_set('error_reporting', E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE); @ini_set('display_errors', true); @ini_set('html_errors', false); define('DATALIFEENGINE', true); define('ROOT_DIR', dirname (__FILE__)); define('ENGINE_DIR', ROOT_DIR.'/engine'); require_once (ENGINE_DIR.'/classes/plugins.class.php'); $db->query("UPDATE ".PREFIX."_logs SET rating='-1' WHERE rating='1' OR rating='2';"); $db->query("UPDATE ".PREFIX."_logs SET rating='1' WHERE rating='3' OR rating='4' OR rating='5';"); $db->query("UPDATE ".PREFIX."_post_extras SET rating='0';"); $db->query("UPDATE ".PREFIX."_post_extras SET vote_num='0';"); $db->query("UPDATE ".PREFIX."_logs, ".PREFIX."_post_extras SET ".PREFIX."_post_extras.rating = (SELECT SUM(rating) as rating FROM ".PREFIX."_logs WHERE ".PREFIX."_logs.news_id = ".PREFIX."_post_extras.news_id), ".PREFIX."_post_extras.vote_num = (SELECT COUNT(*) as count FROM ".PREFIX."_logs WHERE ".PREFIX."_logs.news_id = ".PREFIX."_post_extras.news_id) WHERE ".PREFIX."_post_extras.news_id = ".PREFIX."_logs.news_id"); ?> В данном случае пересчитается рейтинг только новостей. Разве так нельзя? Проблем не будет? Изменено 21 марта 2019 пользователем radrigo Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 081 Опубликовано: 22 марта 2019 Рассказать Опубликовано: 22 марта 2019 21 час назад, radrigo сказал: Разве так нельзя? Проблем не будет? Такие вещи тестируются а не угадываются. Я этот код не тестировал поэтому я не могу сказать будут проблемы или нет. Цитата Ссылка на сообщение Поделиться на других сайтах
radrigo 180 Опубликовано: 22 марта 2019 Рассказать Опубликовано: 22 марта 2019 Автор 10 часов назад, celsoft сказал: Такие вещи тестируются а не угадываются. Я этот код не тестировал поэтому я не могу сказать будут проблемы или нет. Я не прошу тестировать, а просто глянуть. Возможно правильно пересчитать таким методом рейтинг? Вам как человеку, который делает этот движок, наверняка не составит труда это понять. На локальном компьютере тестировал, вроде бы пересчитывает без проблем. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 081 Опубликовано: 23 марта 2019 Рассказать Опубликовано: 23 марта 2019 12 часов назад, radrigo сказал: Я не прошу тестировать, а просто глянуть. Возможно правильно пересчитать таким методом рейтинг? Вам как человеку, который делает этот движок, наверняка не составит труда это понять. Просто "глянуть" зачастую бывает недостаточно чтобы сказать, правильно ли все будет работать или нет. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.