За последние 24 часа нас посетил 17061 программист и 1652 робота. Сейчас ищут 889 программистов ...

Добавление нескольких изображений

Тема в разделе "PHP для новичков", создана пользователем Lestat621, 20 авг 2012.

  1. Lestat621

    Lestat621 Активный пользователь

    С нами с:
    6 июн 2012
    Сообщения:
    41
    Симпатии:
    0
    Нашел много тем как вывести несколько изображений. Но везде выводить приходиться из конкретной папки, а что если у меня блог, я вошел в конкретную запись. Как вывести там несколько изображение.
    То есть, я вывожу изображение путем из БД. Но если пользователь хочет добавить 20 изображение. Мне же не нужно создавать + 20 колонок в БД. Как это реализуется?
     
  2. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    создаются 2 таблицы в бд
     
  3. Lestat621

    Lestat621 Активный пользователь

    С нами с:
    6 июн 2012
    Сообщения:
    41
    Симпатии:
    0
    Предположил что нужна отдельная таблица. Но в этой самой таблице изображений так же будет определенное кол-во колонок, а сколько изображений взбредет добавить пользователю я не в курсе.
     
  4. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Нет, не нужно никаких 20 колонок.
    Создаёшь таблицу для изображений с такими полями: id (айди картинки), blog_id (айди записи в блоге, к которой относится эта картинка), image (путь к картинке). Ну и по необходимости ещё какие-то поля - название картинки там, описание и т.д.
    Соответственно, когда пользователь загружает 20 (да хоть 100) картинок - ты просто добавляешь эти 20 или сколько там нужно новых строк в эту таблицу. Строк, а не колонок.
     
  5. Lestat621

    Lestat621 Активный пользователь

    С нами с:
    6 июн 2012
    Сообщения:
    41
    Симпатии:
    0
    Точно, спс))
     
  6. Lestat621

    Lestat621 Активный пользователь

    С нами с:
    6 июн 2012
    Сообщения:
    41
    Симпатии:
    0
    Я загрузил энное кол-во изображений. Нажал отправить. Теперь у меня (допустим) в статье, есть изображения. После я могу удалять их и редактировать, но как я могу заранее, до отправки подгружать изображения, с просмотром. По идее можно сделать отдельную форму, где так же будет кнопка 'submit'. Но тогда изображения не будут добавляться к конкретной статье (id). В интернете много инфы, но везде касается БД и загрузка осуществляется сразу без предварительного просмотра.
     
  7. Lestat621

    Lestat621 Активный пользователь

    С нами с:
    6 июн 2012
    Сообщения:
    41
    Симпатии:
    0
    Не понимаю как редактировать файлы до записи в БД или как записать файл в бд, вторую таблицу, пока я еще не отправил форму целиком, так как нету id из первой таблицы для добавления файлов.

    Код (Text):
    1.     if(isset($_POST['upload'])){ // кнопка upload находиться внутри формы
    2.         foreach($_FILES['photoalbum']['name'] as $k=>$f){ // Цикл для сбора массива
    3.             $new_name = rand(100, 100000000); // Переменная для ренейма загружаемых файлов
    4.             $photoalbum = array();
    5.             $photoalbum = $_FILES['photoalbum']['name'][$k];
    6.             $photoalbum_type = $_FILES['photoalbum']['type'][$k];
    7.             $photoalbum_size = $_FILES['photoalbum']['size'][$k];
    8.            
    9.             // Проверка типа данных
    10.             if ((($photoalbum_type == 'image/gif') || ($photoalbum_type == 'image/jpeg') || ($photoalbum_type == 'image/pjpeg')
    11.             || ($photoalbum_type == 'image/png'))|| ($photoalbum_type == 'image/tif') || ($photoalbum_type == '')){
    12.                 // Проверка размера загружаемого файла
    13.                 if($photoalbum_size <= 1048576){           
    14.                     if (is_uploaded_file($_FILES['photoalbum']['tmp_name'][$k])){
    15.                         $photoalbum_type = str_replace('image/', '.', $photoalbum_type);
    16.                         $photoalbum = $new_name . $photoalbum_type;
    17.                         if (move_uploaded_file($_FILES['photoalbum']['tmp_name'][$k], "../images/". $photoalbum)){
    18.                            
    19.                             /* Самое интересное, как в данном запросе я могу сделать запись до того как нажал кнопку отправить и id из первой таблицы еще не существует. */
    20.                            
    21.                             require_once('connect.php');
    22.                             $query = "INSERT INTO images(id, photo) VALUES('??', '$photoalbum')";
    23.                             $result = mysql_query($query);
    24.                            
    25.                             echo 'Файл: '. $photoalbum . ' загружен.<br />';
    26.                             echo '<img src="../images/' . $photoalbum . '" width="150" height="150" /><br />';
    27.                             $photoalbum = '';  
    28.                             mysql_close($DBASE);
    29.                         }
    30.                     }
    31.                 }else{echo '"' . $photoalbum . '"  - <span style="color:red;" >привышает допущеный размер.</span><br /> ';}
    32.             }else{echo '"' . $photoalbum . '"  - <span style="color:red;" >не соответствует стандартам.</span><br /> ';}
    33.         }
    34.     }