perdona, creo que no habia entendido
para lo que pretendes lograr, hay que crear un bucle y si efectivamente hay que hacer 2 consulta:
Código PHP:
$sql=("SELECT idfiltro FROM `filtro`WHERE nombre = '".$nom."'");
$result=mysql_query($sql,$link);
$var= mysql_fetch_assoc($result);
$sql1=("SELECT iddato FROM `datos`WHERE datoreal = '".$dat."'");
$result1=mysql_query($sql1,$link);
$valor=mysql_fetch_assoc($result1);
$total=array();
foreach($var as $k => $v){
foreach($valor as $k2 => $v2){
$sql="SELECT COUNT(*) FROM registo WHERE YEAR(fecha) = YEAR(DATE_ADD(NOW(), INTERVAL 0 YEAR)) AND MONTH(fecha) = MONTH(DATE_ADD(NOW(), INTERVAL 0 MONTH)) AND idfiltro='$v' AND iddato='$v2'";
$reg=@mysql_query($sql,$link);
if($reg!=0){
$total[]=$reg;
}
else{
$total[]=0;
}
}
}
//para ver los valores de total
foreach($total as $a => $b){
echo $b;
}
espero te de una idea saludos.
PD. $a, $b, $k, $k2, $v y $v2 son solo por darle nombre a las variables.