2つのこと:
1.変更
echo "<select name='train_name' id='train_name' multiple='multiple'>";
に
echo "<select name='train_name[]' id='train_name' multiple='multiple'>";
2.変更
function getAllAssoc() {
$sql = "SELECT * FROM train_information WHERE train_name = :train_name";
$sth = $this->pdo->prepare($sql);
$sth->bindParam(":train_name", $_POST["train_name"]);
$sth->execute();
return $sth->fetchAll();
}
に
function getAllAssoc() {
$sql = "SELECT * FROM train_information WHERE train_name IN(:train_name)";
$sth = $this->pdo->prepare($sql);
$sth->bindParam(":train_name", implode(",",$_POST["train_name"]));
$sth->execute();
return $sth->fetchAll();
}
このコードはテストしていないので、クエリの引用符を調整するだけで、一重引用符に問題があると感じます。
上記で行われたことは、配列内の入力を取得し、それに応じてこの配列入力に基づいて結果をフェッチしたことです。
アイデアが浮かぶことを願っています!!