Нашел много тем как вывести несколько изображений. Но везде выводить приходиться из конкретной папки, а что если у меня блог, я вошел в конкретную запись. Как вывести там несколько изображение. То есть, я вывожу изображение путем из БД. Но если пользователь хочет добавить 20 изображение. Мне же не нужно создавать + 20 колонок в БД. Как это реализуется?
Предположил что нужна отдельная таблица. Но в этой самой таблице изображений так же будет определенное кол-во колонок, а сколько изображений взбредет добавить пользователю я не в курсе.
Нет, не нужно никаких 20 колонок. Создаёшь таблицу для изображений с такими полями: id (айди картинки), blog_id (айди записи в блоге, к которой относится эта картинка), image (путь к картинке). Ну и по необходимости ещё какие-то поля - название картинки там, описание и т.д. Соответственно, когда пользователь загружает 20 (да хоть 100) картинок - ты просто добавляешь эти 20 или сколько там нужно новых строк в эту таблицу. Строк, а не колонок.
Я загрузил энное кол-во изображений. Нажал отправить. Теперь у меня (допустим) в статье, есть изображения. После я могу удалять их и редактировать, но как я могу заранее, до отправки подгружать изображения, с просмотром. По идее можно сделать отдельную форму, где так же будет кнопка 'submit'. Но тогда изображения не будут добавляться к конкретной статье (id). В интернете много инфы, но везде касается БД и загрузка осуществляется сразу без предварительного просмотра.
Не понимаю как редактировать файлы до записи в БД или как записать файл в бд, вторую таблицу, пока я еще не отправил форму целиком, так как нету id из первой таблицы для добавления файлов. Код (Text): if(isset($_POST['upload'])){ // кнопка upload находиться внутри формы foreach($_FILES['photoalbum']['name'] as $k=>$f){ // Цикл для сбора массива $new_name = rand(100, 100000000); // Переменная для ренейма загружаемых файлов $photoalbum = array(); $photoalbum = $_FILES['photoalbum']['name'][$k]; $photoalbum_type = $_FILES['photoalbum']['type'][$k]; $photoalbum_size = $_FILES['photoalbum']['size'][$k]; // Проверка типа данных if ((($photoalbum_type == 'image/gif') || ($photoalbum_type == 'image/jpeg') || ($photoalbum_type == 'image/pjpeg') || ($photoalbum_type == 'image/png'))|| ($photoalbum_type == 'image/tif') || ($photoalbum_type == '')){ // Проверка размера загружаемого файла if($photoalbum_size <= 1048576){ if (is_uploaded_file($_FILES['photoalbum']['tmp_name'][$k])){ $photoalbum_type = str_replace('image/', '.', $photoalbum_type); $photoalbum = $new_name . $photoalbum_type; if (move_uploaded_file($_FILES['photoalbum']['tmp_name'][$k], "../images/". $photoalbum)){ /* Самое интересное, как в данном запросе я могу сделать запись до того как нажал кнопку отправить и id из первой таблицы еще не существует. */ require_once('connect.php'); $query = "INSERT INTO images(id, photo) VALUES('??', '$photoalbum')"; $result = mysql_query($query); echo 'Файл: '. $photoalbum . ' загружен.<br />'; echo '<img src="../images/' . $photoalbum . '" width="150" height="150" /><br />'; $photoalbum = ''; mysql_close($DBASE); } } }else{echo '"' . $photoalbum . '" - <span style="color:red;" >привышает допущеный размер.</span><br /> ';} }else{echo '"' . $photoalbum . '" - <span style="color:red;" >не соответствует стандартам.</span><br /> ';} } }