Подход-то у тебя правильный, а вот код неверный.
Все верно, ид страницы передается через гет. То есть сначала ты выводишь все записи ссылками.
А потом на странице проекта пишешь почти такой же код, только правильно
Зaпомни, переменную никоrда нельзя подставлять в запрос напрямую. Ошибок и проблем не оберешься. Поэтому надо так
$stmt=$address_mysqli->prepare("SELECT `headline` FROM `projects` WHERE `project_id=?");
$stmt->bind_param("s", $_GET['project_id']);
$stmt->execute();
$result=$stmt->ge_result()->fetch_assoc();
echo $result['headline'];
И твой заголовок отлично выводится
В зависимости от $_GET['project_id'] будут выводиться разные заголовки