Hola,
Mucho me temo que el problema es como usas la funcion y las variables, en concreto la que almacena el resultado. Cuando pasas una variable como parametro a una funcion solo pasas su valor. Cuando en la funcion modificas el parametro, lo que realmente se modifica es una variable local que se inicializa con el valor de la variable que le has pasado. Lo que no se modifica es la variable que le has pasado. Si tu funcion solo devuelve el valor, seria mejor diseñarlo como
Código PHP:
function consultar($consulta){
$nom = mysql_query($consulta) or die("<b>Consulta:</b> $consulta<p><br><b>Error:</b>".mysql_error());
return $nom;
}
Mas que nada, es que no utilizas para nada el valor que le pasas a $nom.
Si lo que deseas es lo que en algunos lenguajes se llama un parametro de entrada/salida, deberias mirar las
referencias(parecido a C).
En otros lenguajes tambien existian parametros de solo salida que se usaban dobre todo si se tenian que devolver varios valores. Pero en PHP puedes sin mas devolver un array con los valores y recibirlos con ayuda de list() en distintas variables.
Espero haber sido de ayuda.