Catholic
Guest
Запрос: Сколько фоток у каждого пользователя!
Привет
есть две таблицы
users - пользователи сайта
photos - фотографии пользователей
Скажу сразу: чтобы в будущем, когда я вывожу информацию пользователей, не делать лишний запрос и не тратить времени 'каждый раз когда пользователь добавляет или удаляет свои фотографии в таблицу users в столбик total_photos записывается +1 или -1 соответственно'
и того у нас всегда есть цифра сколько фоток у пользователя
но бывает всякое
работа скрипта может оборваться или ещё что и возможно +1 или -1 поставиться не успеет
поэтому хотелось бы реализовать проверку количества фоток у пользователей, которая будет запускаться скажем один раз в сутки через cron
как лучше всего реализовать запросы mysql чтобы для каждого пользователя собралась инфа и записалась в таблицу users
у меня пока только один более менее хороший вариант
но если скажем 100000 пользователей то получается 100001 mysql запрос
Вопрос такой: как сделать выборку, чтобы нашлись данные только где COUNT(photos.photo_id) != users.total_photos AND photos.user_id = users.user_id
я пытался составить такой запрос, но что-то всё ошибки!
Если у кого есть другие предложения, то тоже приветствуется!
Привет
есть две таблицы
users - пользователи сайта
photos - фотографии пользователей
Скажу сразу: чтобы в будущем, когда я вывожу информацию пользователей, не делать лишний запрос и не тратить времени 'каждый раз когда пользователь добавляет или удаляет свои фотографии в таблицу users в столбик total_photos записывается +1 или -1 соответственно'
и того у нас всегда есть цифра сколько фоток у пользователя
но бывает всякое
работа скрипта может оборваться или ещё что и возможно +1 или -1 поставиться не успеет
поэтому хотелось бы реализовать проверку количества фоток у пользователей, которая будет запускаться скажем один раз в сутки через cron
как лучше всего реализовать запросы mysql чтобы для каждого пользователя собралась инфа и записалась в таблицу users
у меня пока только один более менее хороший вариант
PHP:
$find = mysql_query("SELECT COUNT(photo_id) AS total_photos, user_id FROM photos GROUP BY user_id");
while ($row = mysql_fetch_array($find)) {
mysql_query("UPDATE users SET total_photos = '".$row["total_photos"]."' WHERE user_id = '".$row["user_id"]."'");
}
Вопрос такой: как сделать выборку, чтобы нашлись данные только где COUNT(photos.photo_id) != users.total_photos AND photos.user_id = users.user_id
я пытался составить такой запрос, но что-то всё ошибки!
Если у кого есть другие предложения, то тоже приветствуется!