Как показать данные из массива select2 из mysql? - PullRequest
0 голосов
/ 13 марта 2020

Я совершенно новичок в этом деле, был бы благодарен, если бы кто-нибудь мог мне что-то посоветовать. Я не понимаю, как сохранить массив (работников) из select2 и как показать их (их имена) позже в созданной форме (какому идентификатору они назначены).

enter image description here

Итак, у меня есть 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();
    ?>
...