Я совершенно новичок в этом деле, был бы благодарен, если бы кто-нибудь мог мне что-то посоветовать. Я не понимаю, как сохранить массив (работников) из select2 и как показать их (их имена) позже в созданной форме (какому идентификатору они назначены).
Итак, у меня есть 3 таблицы:
- задачи: идентификатор, имя и так далее.
- работников: идентификатор, имя, фамилия.
- worker_tasks: идентификатор_ работника, идентификатор_записи.
Вот как я создайте задачу (и вставьте ее в таблицу задач), а также вставьте идентификатор задачи в таблицу worker_tasks:
$sql = "INSERT INTO tasks (shortname, projectname, createdby, starting_date, end_date, `description`, workstatus) VALUES(?, ?, ?, ?, ?, ?, ?)";
$q = $pdo->prepare($sql);
$q->execute(array($shortname,$projectname,$createdby,$starting_date,$end_date,$description,$workstatus));
$task_id = $pdo->lastInsertId();
$sql = "INSERT INTO worker_tasks (worker_id, task_id) value(?, ?)";
$w = $pdo->prepare($sql);
Таким образом, в этой таблице worker_tasks работник, выбранный в этой форме select2, получает идентификатор задачи.
<select name="worker[]" class="select2 browser-default"
multiple="multiple">
<optgroup label="Konstruktion">
<?php
$pdo = Database::connect();
$sql = 'SELECT * FROM workers';
foreach ($pdo->query($sql) as $row) {
echo '<option value="'. $row['id']. '"';
echo 'class="left">'. $row['worker_name'] . ' ' . $row['worker_surname'];
echo '</option>';
}
Database::disconnect();
?>
</optgroup>
<optgroup label="Produktion">
<?php
$pdo = Database::connect();
$sql = 'SELECT * FROM workers WHERE worker_field = "Produktion"';
foreach ($pdo->query($sql) as $row) {
echo '<option value="'. $row['id']. '"';
echo 'class="left">'. $row['worker_name'] . ' ' . $row['worker_surname'];
echo '</option>';
}
Database::disconnect();
?>
</optgroup>
</select>
И вот где показывается материал из моей задачи:
<?php
$pdo = Database::connect();
$sql = 'SELECT * FROM tasks WHERE workstatus="In Bearbeitung" ORDER BY id DESC';
foreach ($pdo->query($sql) as $row) {
echo '<ul class="collapsible collapsible-accordion animate fadeUp">';
echo '<li>';
echo '<div class="collapsible-header" tabindex="0">';
echo $row['shortname'];
echo '</div>';
echo '<div class="collapsible-body pad white-blur lighten-5">';
echo '<p class="black-text">';
echo '<b>Projekt:</b>';
/* echo '<br>'. $row['workers name should be showed here but I wonder how to do that properly?'] . '<br>'; */
echo '<br>';
echo '<b>Projekt Bezeichnung:</b>';
echo '<br>B8 Version 1.2.0';
echo '<br>';
echo '<b>Aufgabe:</b>';
echo '<br>'. $row['description'] . '<br>';
echo '<br>';
echo '<b>Mitarbeiter:</b>';
echo '<br>'. $row['workers_array'] . '<br>';
echo '</p>';
echo '</li>';
echo '</ul>';
}
Database::disconnect();
?>