Вы действительно хотите следующую строку в базе данных? Ваши данные проиндексированы на info.id? Если нет, то ваш следующий ряд может оказаться не тем, что вы ожидаете. Что делать, если вам нужно изменить порядок вещей?
Вы можете рассмотреть возможность использования next_id и previous_id в качестве полей в информации, а затем
SELECT
...
FROM info current_info
INNER JOIN media current_media
ON current_info.id = current_media.id
INNER JOIN info prev_info
ON prev_info.id = current_info.previous_id
INNER JOIN media prev_media
ON prev_info.id = prev_media.id
INNER JOIN info next_info
ON next_info.id = current_info.next_id
INNER JOIN media next_media
ON next_info.id = next_media.id
WHERE current_media.id = '$id'
Это дает преимущества всегда возвращать одну строку. Почему это хорошо? Если нет предыдущего или нет следующего, как определить, являются ли две возвращенные строки предыдущей и текущей или текущей и следующей.
Это также более управляемо, так как вы можете изменить порядок элементов, изменив их идентификаторы.
(ВНИМАНИЕ: приведенный выше код может не работать, у меня на ноутбуке нет клиента sql. Но, надеюсь, он укажет вам правильное направление)