Команды бота

    Редактирование файла

    Создать автоматизацию

    Создать правило автоотправки

    Переслать сообщение в...

    • Загрузка списка групп...

    PHP скрипт вывода песен из базы данных и возможности за них голосовать

    Для реализации данной задачи создадим PHP-скрипт, который отображает список песен из базы данных и позволяет голосовать за каждую песню. Скрипт будет состоять из двух частей: одна часть будет отвечать за отображение списка и работу с голосами, вторая — за обновление информации о голосах и обработку голосования.

    Структура таблицы

    Убедитесь, что в базе данных существует таблица songs с колонками для хранения информации о песне и количестве голосов. Если такой таблицы нет, создайте её:

    CREATE TABLE songs (
        id INT AUTO_INCREMENT PRIMARY KEY,
        artist VARCHAR(255) NOT NULL,
        song VARCHAR(255) NOT NULL,
        votes INT NOT NULL DEFAULT 0
    );

    Скрипт для отображения песен и голосования (index.php)

    <!DOCTYPE html>
    <html lang="ru">
    <head>
        <meta charset="UTF-8">
        <title>Голосование за песни</title>
    </head>
    <body>
        <h1>Список песен</h1>
        <?php
        // Подключение к базе данных
        $servername = "localhost";
        $username = "your_username";
        $password = "your_password";
        $dbname = "your_database";
    
        $conn = new mysqli($servername, $username, $password, $dbname);
    
        // Проверка соединения
        if ($conn->connect_error) {
           die("Ошибка подключения: " . $conn->connect_error);
        }
    
        // Получение списка песен
        $sql = "SELECT id, artist, song, votes FROM songs";
        $result = $conn->query($sql);
    
        // Отображение списка песен
        if ($result->num_rows > 0) {
            echo "<ul>";
            while ($row = $result->fetch_assoc()) {
                echo "<li>" . htmlspecialchars($row['artist']) . " - " . htmlspecialchars($row['song']) . 
                     " (Голосов: " . $row['votes'] . ")
                     <form action='vote.php' method='post' style='display: inline;'>
                         <input type='hidden' name='song_id' value='" . $row['id'] . "'>
                         <input type='submit' value='Голосовать'>
                     </form>
                     </li>";
            }
            echo "</ul>";
        } else {
            echo "Песни не найдены.";
        }
    
        $conn->close();
        ?>
    </body>
    </html>

    Скрипт для обработки голосов (vote.php)

    <?php
    // Подключение к базе данных
    $servername = "localhost";
    $username = "your_username";
    $password = "your_password";
    $dbname = "your_database";
    
    $conn = new mysqli($servername, $username, $password, $dbname);
    
    // Проверка соединения
    if ($conn->connect_error) {
        die("Ошибка подключения: " . $conn->connect_error);
    }
    
    // Проверяем, была ли отправлена форма методом POST
    if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['song_id'])) {
        $song_id = intval($_POST['song_id']);
    
        // Увеличиваем количество голосов на 1
        $sql = "UPDATE songs SET votes = votes + 1 WHERE id = $song_id";
    
        if ($conn->query($sql) === TRUE) {
            echo "Ваш голос учтен. <a href='index.php'>Вернуться к списку песен</a>";
        } else {
            echo "Ошибка при голосовании: " . $conn->error;
        }
    }
    
    $conn->close();
    ?>

    Объяснение:

    • index.php: Получает из базы данных список песен и отображает их. Каждая песня сопровождается формой с кнопкой «Голосовать», отправляющей запрос на vote.php.
    • vote.php: Увеличивает количество голосов для выбранной песни. Использует безопасную передачу идентификатора песни через hidden поле формы.

    Замечания:

    • Замените your_username, your_password и your_database на данные доступа к вашей базе данных.
    • Применение функций htmlspecialchars() помогает предотвратить XSS-атаки, обеспечивая безопасный вывод данных.
    • Предполагается, что у пользователя есть права на чтение и запись в базу данных.

    Edit Message

    Attachments:

    AI Assistant

    Enter your instruction to edit the text: