Замени $result = array(); на $result = $false;
Потому что у меня такое ощущение, что в таблице members ровно одна запись, которая теряется на предыдущей выборке.
Никогда не следует таким образом писать запросы, потому что это прямая дорога к SQL injection. Правильнее было бы устроить нечто вроде
$pdo = new PDO(/* параметры соединения с БД */);
$result = $pdo->prepare('SELECT datestart, dateend FROM main WHERE namenomer = :namenomer');
$result->execute([':namenomer' => empty($_POST['nnomer' ]) ? '' : $_POST['nnomer']]);