Vous pouvez continuer avec votre solution mais pour des raisons d'efficacité, vous ne devriez pas faire un SELECT à l'intérieur d'une boucle, vous devriez utiliser un SQL JOIN.
Votre requête doit joindre les deux tables dans le champ Route :
SELECT * FROM buses b
INNER JOIN routes r ON b.Route = r.Route;
Aucune requête supplémentaire ne sera nécessaire à l'intérieur de la boucle car vous aurez accès à fromcity à partir de cette requête. Vous voudrez peut-être déclarer spécifiquement les champs dans le SELECT plutôt que d'utiliser *
.