Как записать в одно поле 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?
  • Вопрос задан
  • 58 просмотров
Решения вопроса 1
@alexalexes
Варианты решения в зависимости от задачи:
1) Брать один из файлов и сохранять только его.
2) Брать известное количество файлов и сохранять их свойства в разные поля таблицы catalog. Например, может быть не более двух файлов изображения - миниатюра и полное изображение. В таблице должны быть поле под миниатюру, поле под полное изображение.
3) Брать все файлы, но в базе должна быть отдельная таблица для файлов изображений (например, catalog_image), запись которой хранит сведения об одном файле и ссылается внешним ключом к другой таблице - catalog, к записи предмета, к которой относится файл. Такая архитектура позволит хранить неограниченное число файлов для одной записи catalog.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Mootfrost
C#, C++, JS, Python
ну значит хранить не путь, а json с путями или просто разделять каким-нибудь символом
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы