Creo que la función que estas utilizando es bastante "enredada" y quizá seria mejor que buscaras otra forma de hacer lo que queres hacer. Aunque tengas que escribir un poco más de código quizá el resultado sea una función más facil de entender.
Igualmente, para hacer lo que pretendes, tenes que tener cuidado de que el nombre de las variables dentro del string enviado no se evaluen. Es decir, si tenes:
Código PHP:
<?
...
$fila="<a href=cliente.php?vnomb=$row0&vfec=$row1&vemp=$row4>";
planilla($tabla,$fila);
..
?>
vas a estar llamando a la función con el string "<a href=cliente.php?vnomb=&vfec=&vemp=>", ya que al estar entre comillas dobles, php reeplaza las variables que ocurren dentro del string por su valor. Como en este caso las variables $row0, $row1 y $row4 no tienen valor, se reemplazan por una cadena nula. Lo que vos queres enviarle a la función es el string con los nombres de las variables, no con su valor. Para esto tendrias que definir el string encerrado entre comillas simples para que las variables no se expandan:
Código PHP:
<?
...
$fila='<a href=cliente.php?vnomb=$row0&vfec=$row1&vemp=$row4>';
planilla($tabla,$fila);
..
?>
Una vez que la función obtiene este string, no es suficiente con imprimir su valor, tenes que evaluar su contenido para que el nombre de las variables se reemplace por su valor. Para ello vas a necesitar la función
eval(). Creo que podrias hacerlo de varias maneras, pero te pongo un ejemplo:
Código PHP:
<?
function planilla($tabla,$filaenlace){
$sql = "SELECT * FROM $tabla"
$res=mysql_query($sql);
while(list($row0, $row1, $row2, $row3, $row4, $row5) = mysql_fetch_array($res)) {
eval("\$enlace = \"$filaenlace\";");
echo $enlace;
}
}//fin function
?>
La línea eval("\$enlace = \"$filaenlace\";"); ejecuta el código php que se le pasa como parámetro a la función eval, por lo que el resultado es que la variable $enlace contengo el string $filenlace pero esta vez con las variables expandidas.
Espero haberme explicado bien.
Saludos.