Si $tabla no tiene como valor algo asi como: nombre_bd.tabla entonces ese codigo debería darte un error, pues no haz seleccionado una base de datos, lo cual se hace con la instruccion (antes de usar msyql_query()):
mysql_select_db("nombre_bd");
Luego, $consulta es un conjunto de registros no una instruccion sql, por tanto no puede ser parametro de mysql_db_query($db,$sql);
La estructura completa para leer datos de una bd sería:
Código PHP:
<?php
mysql_connect("servidor","usuario","password");
mysql_select_db("nombre_bd");
$sql="...";
$result=mysql_query($sql);
if ($result && mysql_num_rows($result))
{
//hay registros
while($row=mysql_fetch_array())
{
echo $row['campo'];
}
}
?>