Ho fatto un passo indietro, dallo script funzionante, senza la parte relativa alla paginazione , ho varie prove cambiando il select da
$query = "SELECT id, titolo, ingredienteprincipale, regione FROM DBRicette WHERE " . $query;
a cosi

$query = "SELECT id, titolo, ingredienteprincipale, regione FROM DBRicette WHERE LIMIT 0,15 " . $query;

e cosi
$query = "SELECT id, titolo, ingredienteprincipale, regione FROM DBRicette ORDER BY RAND() DESC LIMIT 0,15 " . $query;

ma facendo eseguire le query non viene visualizzato nessun dato.
A questo punto mi viene il dubbio che mi sfugga qualche cosa legato alla teoria... Il limit e l'eventuale offset vā definito nel select e non nella prima query ossia quella giusto?
Perche' qualsiasi cambiamento del select non mi visualizza i dati?