Добрый день.
Покажите полностью код, с формой и обработчиком.
Если не считать запрос к базе, то всё работать должно и ничего не должно дублироваться.
<?php
if($_POST){
$key = $_POST['key'];
$downl = '<a href="downl/1.zip">кликабельно</a>';
// убрал запрос для упрощения
if ( $key ) {
echo "Ссылка для скачивания: ". $downl;
} else {
echo "Ключ не был обнаружен.";
}
}
?>
<form method="post">
<input type="text" name="key">
<input type="submit" name="sub" value="send">
</form>
Но то, как Вы подставляете значение в запрос - ошибка, причём грубая. Напрямую ничего нельзя подставлять, особенно, если эти данные пришли от пользователя!!!