Ok, en el primer foreach esta el error porque si subes multiples archivos el array que se guarda en $_FILES cambia. Mira, el array $_FILES subiendo un sólo archivo se forma así:
Código PHP:
$_FILES['file'] = array(
'tmp_name' = 'letrasaleatorias',
'filename' => 'archivo.jpg',
'size' => 99999,
'error' => 0
);
Como verás, es un array sencillo con sólo 4 índices (sino mal recuerdo haha). Pero cuando subes varios archivos el array se torna multidimensional:
Código PHP:
$_FILES['file'] = array(
0 => array(
'tmp_name' = 'letrasaleatorias',
'filename' => 'archivo.jpg',
'size' => 99999,
'error' => 0
),
1 => array(
'tmp_name' = 'letrasaleatorias2',
'filename' => 'archivo2.jpg',
'size' => 88888,
'error' => 0
),
);
Bueno, ahora que ya sabes esto ya puedes realizar el foreach de forma correcta:
Código PHP:
foreach($_FILES['file'] as $indice => $archivo) {
if($archivo['error'] == 4) {
//No se subio archivo alguno
continue;
}elseif($archivo['error'] == 0){
//Se subio el archivo al servidor
//El tmp_name esta en $archivo['tmp_name']
//Ahora sólo resta saber que si es público ó privado
if($_POST['select-folder'][$indice] == 'private'){
//El archivo lo pones en la carpeta de privada y ejecutas el código que mencionabas
$query_insert_folder = "INSERT INTO PRIVATE VALUES ('$id')";
$result_query_insert_folder = mysql_query($query_insert_folder);
}else{
//El archivo lo pones en la carpeta pública
}
}
}
Salu2