Dos cosas:
1.Cambiar
echo "<select name='train_name' id='train_name' multiple='multiple'>";
a
echo "<select name='train_name[]' id='train_name' multiple='multiple'>";
2.Cambiar
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();
}
a
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();
}
Simplemente ajuste las comillas en la consulta ya que no he probado este código y siento que habrá un problema con las comillas simples.
Lo que se hizo arriba es que tomamos las entradas en una matriz y, en consecuencia, obtuvimos los resultados en función de esta entrada de matriz.
¡¡Espero que entiendas la idea!!