Я переместил ваш первый запрос в начало вашей страницы.Мне кажется, это то, что собирается заполнить ваш HTML с данными группы.
Я немного почистил твой HTML.Хорошо отформатированный код намного проще для чтения и устранения проблем при возникновении проблем.Мне нравится избегать взлома и выхода php.
Ваш запрос на вставку близок, но я сделал очень четкий пример для вас.Это должно показать вам путь вперед.Помните: готовьтесь, привязывайте и выполняйте.
<?php
//DB select statement - This should probably go before your select html
$sql= "SELECT * FROM groups";
$stmt = $db->prepare($sql); //Prepare
//Nothing to bind
$stmt->execute(); //Execute
$groups = $stmt->fetchAll();
echo
'<div class="group">
<label>Subject</label>
<input type="text" name="subject">
</div>
<div class="group">
<label>Group</label>
<select id="ministry" name="group">
<option style="font-family: century gothic">---Select Ministry---</option>';
foreach($groups as $group){
echo
'<option value="' . $group['group_id'] . '">' . $group['groupname'] . '</option>';
}
echo
'</select>
</div>';
if(isset($_POST['sendSMS'])){
//insert into database
$query = "INSERT INTO `message`
(
`date`,
`subject`,
`group`,
`message`
)
VALUES
(
:date,
:subject,
:group,
:message
)";
//Remember these three steps. 1.)Prepare, 2.)Bind, 3.)Execute
$stmt = $db->prepare($query); //Prepare
//Bind
$stmt->bindParam(":date", $_POST['date']);
$stmt->bindParam(":subject", $_POST['subject']);
$stmt->bindParam(":group", $_POST['group']);
$stmt->bindParam(":message", $_POST['message']);
//Execute
$stmt->execute();
echo "SMS sent successfully";
}
?>
Вот два источника для чтения на PDO.Я настоятельно рекомендую просмотреть их оба и добавить в закладки, чтобы вы могли ссылаться, когда они вам нужны.
https://phpdelusions.net/pdo
https://websitebeaver.com/php-pdo-prepared-statements-to-prevent-sql-injection