Dê uma olhada no SQL.
Você usa no WHERE pra eventos que estão ou irão acontecer, talvez as datas dos eventos registrados no banco seja do passado.
$eventos = $pdo->prepare("SELECT * FROM `".$tabela."` WHERE `".$data."` >= NOW()");
Em todo caso, teste o comando SQL em um SGDB para ver se o problema está no SQL ou se é o código PHP que está exibido apenas um registro.