Dwie rzeczy:
1.Zmień
echo "<select name='train_name' id='train_name' multiple='multiple'>";
do
echo "<select name='train_name[]' id='train_name' multiple='multiple'>";
2.Zmień
Funkcjafunction 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();
}
do
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();
}
Po prostu dostosuj cudzysłowy w zapytaniu, ponieważ nie testowałem tego kodu i czuję, że wystąpi problem z pojedynczymi cudzysłowami.
To, co zostało zrobione powyżej, polega na tym, że pobraliśmy dane wejściowe w tablicy i odpowiednio pobraliśmy wyniki na podstawie danych wejściowych tablicy.
Mam nadzieję, że wpadłeś na pomysł!!