Поиск и вывод "промежуточных" данных из бд.

Oraclys

Новичок
Приветствую, уважаемые форумчане.
Юзаю пхп скорее как хобби и не так давно, поэтому можете пинать, не обижусь))
Есть таблица со столбцами id (a_i) start и stop. Допустим это остановки маршрута. В форме селектом выбирается откуда и куда. Нужно вывести все промежуточные остановки.
Получилось что-то вроде этого :eek::
Код:
$start=trim($_POST['start']);
$stop=trim($_POST['stop']);
$result=mysql_query("SELECT * FROM bus WHERE start='$start'");
$result2=mysql_query("SELECT * FROM bus WHERE stop='$stop'");
$result=mysql_fetch_array($result);
$result2=mysql_fetch_array($result2);
if($result['id'] == $result2['id']){
    echo $result['start']."<br>".$result['stop'];
    }else{
    for($res2=$result['stop'], $a=0; $a < 20; $a++){
        $res=mysql_query("SELECT * FROM bus WHERE start='$res2'");
        $res=mysql_fetch_array($res);
        echo $res['start']."<br>";
        if($res['stop']==$result2['stop']) break;
        $res2=$res['stop'];
        }
}
Как я понимаю это аццкий костыль :D. Хотелось бы узнать как еще можно реализовать подобную задачу (в частности через forech). Желательно не постить примеры (кроме forech), дабы самому допетрить, а просто дать толчок в нужном направлении.
Еще вопросег: при вставке в sql запрос переменную массива ( ...WHERE start='$res['stop']'"); ) у меня пустая страница (поэтому и добавил лишнюю $res2), это неправильная настройка lampы?
И просьба, если не слишком трудозатратно, выложить как будет этот (именно этот, через for) скрипт выглядеть в ООП.
Если код абсолютный бред и не имеет смысла удаляйте топик))
 
Сверху