perdonate le mie imprecisioni, ma mi sono avvicinato da poco a questo linguaggio e quindi va da se che possa dire non poche cavolate, cerco di spiegare l'errore:

aggiungendo queste 2 condizioni ottengo che se le due variabili non sono settate la query mi restituisca cmq tutti i valori possibili:

if (empty ($b)) {$b = "%";}
if (empty ($d)) {$d = "%";}

$query = "SELECT count(*) FROM $user_tablename WHERE (a LIKE '$b' AND c LIKE '$d') ";

Lo so è colpa mia, abbiate pazienza sto imparando!
grazie cmq a tutti