Hola,
Primero tienes que hacer que PHP reciba los distintos ficheros y los distinga. Como ya te han dicho, podrias hacerlo poniendo como nombre de los campos del formulario nombre_img$num (que te generaria los campos nombre_img1, nombre_img2, ...). Aunque yo te recomiendo que uses como nombre nombre_img[], sobre todo porque asi la pagina destino no necesita saber el numero que se especifico. Te quedaria asi:
Código PHP:
$num = 1;
while ($num <= $imgq ) {
echo "imagen #".$num." <input type=\"file\" name=\"nombre_img[]\" size=\"30\"><br>";
$num++;
}
Lo segundo es que debes pasarle a la funcion todas las variables que necesita. Me explico. En tu codigo le pasas $nombre_img, quizas porque pensabas que esa variable representa a todas las variables de la imagen. Pero lo que debes pasarle son todas las variables que usas en el trozo de codigo. La definicion de la funcion seria:
Código PHP:
function upload($imagen, $imagen_name, $imagen_size, $imagen_type);
Las que he puesto son las variables del upload de fichero. No conozco tu codigo, pero quizas necesitas pasar otras variables.
Y por ultimo, queda llamar a esa funcion con los valores de los distintos ficheros a subir. Lo podrias hacer asi:
Código PHP:
for ($i=0; $i<count($nombre_img);$i++)
{
upload($nombre_img[$i],$nombre_img_name[$i],$nombre_img_size[$i],$nombre_img_type[$i]);
}
Y con esto creo que funcionaria.
Suerte.