Как записать в одно поле 2 пути?

Загружаю изображения на сервер и записываю в базу путь:

 if (isset($_POST['submit']) && count($_FILES)) {
    for ($i = 0; $i <= $count; $i++) {
        $newnames = [];
        if (!empty($_FILES['file']['name'][$i])) {
            if ($info = getimagesize($_FILES['file']['tmp_name'][$i])) {
                $image = imagecreatefromstring(file_get_contents($_FILES['file']['tmp_name'][$i]));
                $name = explode('.', $_FILES['file']['name'][$i]);
                // обработка и сохранение
                $newname = $path . time() . $name[0] . '.png'; // это имя для базы, даже путь полный, только имя можно получить например через basename();
                $newnames[] = $newname; // basename($name);
                imagepng($image, $newname, 9 , PNG_ALL_FILTERS);
                $sql = mysqli_query($connection, "INSERT INTO `catalog` (`img`) VALUES (''{$newname}')");

            } else {
                echo '<h2>Какой то левый файл ' . $_FILES['file']['name'][$i] . '</h2>';
            }
        } else {
            continue;
        }
        echo '<pre>' . print_r($newnames, true) . '</pre>';
    }
} else {
    echo '<h2>Ни чего не выбрано</h2>';
}

Проблема в том, что если загружать несколько изображений, в таблице будет создано несколько записей. Как сделать, чтобы пути к нескольким изображениям записывались только в одно поле img?


Ответы (1 шт):

Автор решения: Андрюха

Например так (не тестил)

if (isset($_POST['submit']) && count($_FILES)) {
    for ($i = 0; $i <= $count; $i++) {
        $newnames = [];
        if (!empty($_FILES['file']['name'][$i])) {
            if ($info = getimagesize($_FILES['file']['tmp_name'][$i])) {
                $image = imagecreatefromstring(file_get_contents($_FILES['file']['tmp_name'][$i]));
                $name = explode('.', $_FILES['file']['name'][$i]);
                // обработка и сохранение
                $newname = $path . time() . $name[0] . '.png'; // это имя для базы, даже путь полный, только имя можно получить например через basename();
                $newnames[] = $newname; // basename($name);
                imagepng($image, $newname, 9 , PNG_ALL_FILTERS);

            } else {
                echo '<h2>Какой то левый файл ' . $_FILES['file']['name'][$i] . '</h2>';
            }
        } else {
            continue;
        }
        echo '<pre>' . print_r($newnames, true) . '</pre>';
    }
    $urls="";
    foreach($newnames as $url){// цикл по всем путям
        $urls=$urls."|".$url;//с разделителем | печатаем все пути.
    }
    $sql = mysqli_query($connection, "INSERT INTO `catalog` (`img`) VALUES (''{$urls}')");
} else {
    echo '<h2>Ни чего не выбрано</h2>';
}
→ Ссылка