У меня есть несколько загрузок файлов, но цикл выполняется только один раз, и это означает, что я получаю в базу данных только один файл
Я попытался вставить часть БД в цикл, но несколько строк в БД ия не хочу, чтобы это было так
if(isset($_POST['submit'])){
$websites = $_POST['websites'];
foreach($_FILES['documents']['tmp_name'] as $key => $tmp_name){
$file_name = $key.$_FILES['documents']['name'][$key];
$file_size =$_FILES['documents']['size'][$key];
$file_tmp =$_FILES['documents']['tmp_name'][$key];
$file_type=$_FILES['documents']['type'][$key];
move_uploaded_file($file_tmp,"uploads/".time().$file_name);
}
print_r($file_name);
$pdo = DB();
$stmt = $pdo->prepare("INSERT INTO client_form_7
(client_id, documents, websites)
VALUES (:client_id, :documents, :websites)");
$stmt->bindParam("client_id", $user_id, PDO::PARAM_INT);
$stmt->bindParam("documents", $file_name, PDO::PARAM_STR);
$stmt->bindParam("websites", $websites, PDO::PARAM_STR);
$stmt->execute();
}
я хочу, чтобы все мои файлы хранились в дБ как массив
EDIT
мое решение
просто создайте пустой массив перед foreach и внутри foreach вставьте имя файла в новый массив и за пределами него закодируйте массив, полный имен файлов с помощью json_encode
, и вставьте его в базу данных, спасибо, ребятадля работы
код
$arr = array();
foreach($_FILES['documents']['tmp_name'] as $key => $tmp_name){
$file_name = $key.$_FILES['documents']['name'][$key];
$file_size =$_FILES['documents']['size'][$key];
$file_tmp =$_FILES['documents']['tmp_name'][$key];
$file_type=$_FILES['documents']['type'][$key];
move_uploaded_file($file_tmp,"uploads/".time().$file_name);
$arr[] = $file_name;
}
$files = json_encode($arr);