$query3 = "SELECT Max(id_DatiCliente)FROM DatiCliente where id_DatiCliente = id_DatiCliente";

Il campo id_DatiCliente non viene estratto, ma viene estratto MAX(id_DatiCliente). Mettici un Alias...

$query3 = "SELECT Max(id_DatiCliente)AS id_DatiCliente
FROM DatiCliente
where id_DatiCliente = id_DatiCliente";


anche se mi sfugge la logica della condizione WHERE.