Попробуйте, что я могу понять:
<form method="post">
<?php
$con = mysqli_connect('localhost','root','','test');
$sql = 'select * from person';
$result = mysqli_query($con,$sql);
echo '<input list="clients" name="client">
<datalist id="clients" name="client" value="'.$_POST['client'].'">';
if(isset($_POST['client']))
{
echo'<option value="'.$_POST['client'].'">';
}
else
{
while($row=mysqli_fetch_array($result))
{
echo'<option value="'.$row['nameOfPerson'].'">';
}
}
echo '</datalist>';
?>
<br /><input type="submit" value="submit" name='submit'/>
</form>
ВЫХОД 1, когда не установлена переменная записи
Вывод 2, когда вы отправляете и устанавливаете значение сообщения
На выходе 2 остальные предыдущие данные не отображаются, потому что я не вставил новое значение вбазу данных, я просто поместил это новое представленное значение в список данных so if block executed
Надеюсь, я правильно понял ваш вопрос