Salut,
Effectivement puisque PHP est exécuté coté serveur (pour le dire plus simplement, PHP est exécuté avant le chargement de la page), tu ne peux pas récupérer la valeur de $_POST['PSN'] au premier chargement.
Deux solutions pour récupérer la valeur sélectionnée par l'utilisateur : utiliser un formulaire ou utiliser ajax. La deuxième solution permet de ne pas recharger entièrement la page comme le fait la soumission d'un formulaire, mais dans les deux cas le principe est le même : envoyer une requête au serveur avec la valeur de la liste déroulante pour que PHP puisse l'utiliser.
Voici un exemple simple en utilisant un formulaire :
<?php
if (!empty($_POST['PSN'])) {
// l'utilisateur a selectionné un PSN, on peut effectuer la deuxième requete
echo 'PSN sélectionné : ' . htmlspecialchars($_POST['PSN']);
// requete2 ...
} else {
// permier chargement de la page, l'utilisateur n'a pas selectionné de PSN, on affiche la liste des PSN
echo 'Aucun PSN selectionné';
// requete1 ...
}
?>
<form method="post">
<select name="PSN" onchange="this.form.submit()">
<option value="valeur1">PSN1</option>
<option value="valeur2">PSN2</option>
<option value="valeur3">PSN3</option>
</select>
</form>
Grâce à l'attribut onchange de la liste déroulante, on soumet le formulaire dès que l'utilisateur sélectionne une valeur.
Rien de spécial coté PHP, on retrouve le début de ce à quoi tu avais pensé.
Bon développement