Как сделать свои лайки на сайте(как в ВК)? Допустим есть столбец like в таблице news, как сделать так, чтобы при нажатии на лайк, добовлялся 1 балл в столбец
Столбец like
в таблице news
- на мой взгляд не совсем удачная схема. Вам наверняка ведь важно кто поставил данный лайк, и вам наверняка важно, чтобы один и тот же пользователь не смог поставить лайк дважды. На мой взгляд, будет рациональным сделать таблицу likes
, у которой будет связь с пользователем (у вас в системе ведь есть таблица users
?) и связь с вашей новостью. То есть в таблице likes
должны быть колонки news_item_id, user_id
. Авторизованный пользователь сможет делать запросы на сервер (например при помощи AJAX), а сервер будет проверять - не поставлен ли уже лайк (нет ли у новости лайка от данного пользователя). Если нет - добавлять в таблицу лайков новую запись (id новости и id пользователя). Есть еще вариант - в одном поле likes держать ID'ы пользователей, которые поставили лайк, в одной строчке (через запятую), но имхо это не очень правильный подход. Короче говоря, суть примерно такая:
users
, news
, news_likes
users
, (этот ID обычно помещается в сессию, массив $_SESSION)SELECT COUNT (*) FROM news_likes WHERE news_id = id_новости AND user_id = id_пользователя
). Если кол-во больше ноля - значит лайк уже стоит и его ставить не нужно. В противном случае делается запрос на вставку новой записи в таблицу news_likesПри выводе списка новостей можно делать запросы на кол-во лайков, чтобы показывать сколько их, либо можно хранить актуальное кол-во в поле новости (что-то вроде likes_count) и показывать его (поле нужно будет обновлять всякий раз при изменении кол-ва, но при выводе это оптимальнее, меньше запросов).
Как-то так..
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как мне передать переменную $email в Mail ? И почему она так не передается ? а только нужно писать например
Нужно вывести по 3 записи на страницу, без перезагрузки страницыВроде просто, пишу: