scusa è ovvio: riprova così

$query = "SELECT tariffa FROM listini WHERE ((inizio_periodo <= '$campo1' AND fine_periodo >= '$campo2') or (inizio_periodo >= '$campo1' AND fine_periodo <= '$campo2')) ";

era sbagliato l' utlima data