Du kan fortsätta med din lösning men för effektivitetens skull bör du inte göra en SELECT i en loop, du bör använda en SQL JOIN.
Din fråga bör förena de två tabellerna i ruttfältet:
SELECT * FROM buses b
INNER JOIN routes r ON b.Route = r.Route;
Inga extra frågor kommer att behövas inuti slingan eftersom du har tillgång till fromcity från denna fråga. Du kanske vill specifikt deklarera fälten i SELECT istället för att använda *
.