Hola,
No es lo mismo un valor que el nombre de un campo o una tabla. El valor si debe ir entre comillas, los nombres de campos o tablas no. No es cuestion si es un parametro o no, depende de su significado dentro de la consulta. Si en lugar de ser una variable, hubieses puesto el nombre directamente, ¿habrias puesto las comillas?
Date cuenta que usas PHP para generar una cadena, que luego la pasas a MySQL. Si la cadena generada no es valida para MySQL (sintaxis), entonces da error. Creo que se ve mas claro asi:
Código PHP:
$sql="select * from '$prueba' order by id";
$result=mysql_query($sql) or die ("no se pudo realizar la consulta II");
$sql contiene una cadena, y esa cadena la pasas a MySQL, por lo que tiene que ser una consulta valida. Si haces un:
veras que tiene las comillas. Y si sabes MySQL, veras que no coincide con una consulta valida.
Saludos.