Для создания функциональности реакций для постов без использования плагинов в PHP, вам следует реализовать следующие шаги:
1. **База данных**:
Начнем с создания необходимых таблиц в базе данных. Нам понадобится две таблицы - одна для хранения постов, другая для хранения реакций.
Пример SQL для создания таблиц:
CREATE TABLE posts ( id INT AUTO_INCREMENT PRIMARY KEY, content TEXT ); CREATE TABLE reactions ( id INT AUTO_INCREMENT PRIMARY KEY, post_id INT, reaction_type VARCHAR(20), user_id INT );
2. **HTML и форма**:
Создайте HTML форму для отображения постов и возможности добавления реакций. Пример:
<div class="post"> <p>Post content goes here</p> <form method="post" action="add_reaction.php"> <input type="hidden" name="post_id" value="1"> <button type="submit" name="reaction" value="like">Like</button> <button type="submit" name="reaction" value="dislike">Dislike</button> </form> </div>
3. **Обработка формы**:
Создайте файл add_reaction.php
, который будет обрабатывать отправленную форму и добавлять реакцию в базу данных.
Пример содержимого файла add_reaction.php
:
<?php // Подключение к базе данных if ($_SERVER['REQUEST_METHOD'] === 'POST') { $post_id = $_POST['post_id']; $reaction_type = $_POST['reaction']; $user_id = 1; // Идентификатор пользователя, который оставил реакцию // Сохранение реакции в базу данных // Запрос INSERT INTO reactions (post_id, reaction_type, user_id) VALUES ($post_id, $reaction_type, $user_id) // Перенаправление обратно на страницу поста header('Location: post.php?id=' . $post_id); exit; }
4. **Отображение реакций**:
Для отображения количества реакций к посту можно выполнить запрос к базе данных и вывести информацию на страницу.
Пример запроса и вывода реакций:
<?php // Подключение к базе данных $post_id = 1; // ID поста, для которого нужно вывести реакции // Запрос SELECT * FROM reactions WHERE post_id = $post_id // Вывод реакций echo 'Likes: 10 Dislikes: 3';
Таким образом, используя приведенные выше шаги, вы можете создать функциональность реакций для постов без использования плагинов, напрямую на основе PHP и базы данных.