Как выбрать нескольких пользователей с использованием флажков (чекбоксов) и выполнить SQL-запрос для них?

  • 7 сентября 2023 г. 8:56
Ответы на вопрос 2
Для выбора нескольких пользователей с использованием флажков (чекбоксов) и выполнения SQL-запроса для них, вам потребуется следующий подход:

1. Создайте форму HTML с флажками для каждого пользователя:
```html
<form action="process.php" method="post">
    <input type="checkbox" name="users[]" value="1"> Пользователь 1<br>
    <input type="checkbox" name="users[]" value="2"> Пользователь 2<br>
    <input type="checkbox" name="users[]" value="3"> Пользователь 3<br>
    ...
    <input type="submit" value="Отправить">
</form>
```

2. В PHP-скрипте "process.php", получите значения выбранных пользователей и выполните SQL-запрос:
```php
if(isset($_POST['users'])) {
    // Получить значения выбранных пользователей
    $selectedUsers = $_POST['users'];
    
    // Подключение к базе данных
    $connection = mysqli_connect("hostname", "username", "password", "database");
    
    // Проверка подключения
    if(mysqli_connect_errno()) {
        die("Ошибка подключения к базе данных: " . mysqli_connect_error());
    }
    
    // Использование значений выбранных пользователей для выполнения SQL-запроса
    foreach($selectedUsers as $userId) {
        $query = "INSERT INTO `available_tests` (`user_id`, `test_id`) VALUES ('$userId', 'selected_test_id')";
        mysqli_query($connection, $query);
    }
    
    // Закрытие соединения с базой данных
    mysqli_close($connection);
}
```

В приведенном выше коде, вместо "hostname", "username", "password" и "database" в функции `mysqli_connect` укажите соответствующие значения для вашего сервера базы данных. Также замените `"selected_test_id"` в строке запроса на фактический идентификатор выбранного теста.

3. Обработка значений в JavaScript и отображение модального окна:
```javascript
// Получить выбранных пользователей
var selectedUsers = [];
var checkboxes = document.getElementsByName('users[]');
for (var i = 0; i < checkboxes.length; i++) {
  if (checkboxes[i].checked) {
    selectedUsers.push(checkboxes[i].value);
  }
}

// Отображение модального окна с выбранными пользователями
alert("Выбранные пользователи: " + selectedUsers.join(", "));
```

Обработка значений происходит в JavaScript, после чего вы можете отобразить их в модальном окне с помощью метода `alert()`. Вы можете применить этот подход к вашему существующему коду для отображения значений id пользователей.
Оборачиваем таблицу в форму, добавляем кнопку для отправки данных. Когда пользователь отметит нужные пункты, он может отправить форму. Указываем метод передачи данных (GET или POST) и адрес серверного скрипта для обработки формы. 

```html
``` В скрипте PHP содержится следующий код: ```php prepare('INSERT INTO ваша_таблица (атрибуты_таблицы) VALUES (значения_атрибутов, кроме_user_id, :user_id)'); $stmt->bindParam(':user_id', $selected_user_id, PDO::PARAM_INT); // Дополнительно привязываем другие параметры запроса, если есть $stmt->execute(); // Выполняем запрос $pdo->commit(); // Фиксируем изменения в базе данных (если требуется) $inserted_user_count++; } $pdo = null; // Закрываем соединение с базой данных } echo 'Обработано пользователей: '.$inserted_user_count; } ?> ```
Похожие вопросы