首页 > 解决方案 > 如何从 mysql 中显示 select2 数组中的数据?

问题描述

我对东西很陌生,如果有人能给我一些建议,我将不胜感激。我不明白如何从 select2 中保存一个数组(工作人员),以及如何稍后在创建的表单(他们被分配到哪个 ID)中显示他们(他们的名字)。

在此处输入图像描述

所以我有3张桌子:

这就是我创建任务(并将其插入任务表)并将任务 ID 插入 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 表单中选择的工作人员会获得一个任务 ID。

<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();
    ?>

标签: phpmysqljquery-select2

解决方案


推荐阅读