Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: несколько файлов изображений и прикрепить к одной записи в БД
 
 автор: Sshell   (03.02.2016 в 15:16)   письмо автору
 
 

Доброго дня! Требуется подсказка. Есть две таблицы vars и imgs. В форме пока заполняются данные в vars, предлагается загрузить фото, нажимаем на кнопку "Загрузить", открывается окно для выбора и загрузки фото, но запись в vars ещё не закончена, т.е. Id ещё нет, для записи var-id в тбл imgs. Подскажите как быть в этой ситуации.

  Ответить  
 
 автор: Valick   (03.02.2016 в 15:20)   письмо автору
 
   для: Sshell   (03.02.2016 в 15:16)
 

нет ясности в вашем объяснении

  Ответить  
 
 автор: Sshell   (03.02.2016 в 15:30)   письмо автору
 
   для: Valick   (03.02.2016 в 15:20)
 

На сервер загружаются фото, их имена заносятся в таблицу imgs, они относятся к одной записи в тбл vars, т.е. в imgs должен быть код var_id для связи с записью, но записи ещё нет потому что она завершается после загрузки фото. Каким лучше способом организовать запись?

  Ответить  
 
 автор: Valick   (03.02.2016 в 15:58)   письмо автору
 
   для: Sshell   (03.02.2016 в 15:30)
 

что мешает загрузить фото на сервер, сделать запись в таблицу vars, а потом записывать в БД информацию о фото в таблицу imgs? (надеюсь у вас там только пути к фото , а не сами фото)

  Ответить  
 
 автор: Sshell   (03.02.2016 в 17:15)   письмо автору
 
   для: Valick   (03.02.2016 в 15:58)
 

>что мешает загрузить фото на сервер, сделать запись в таблицу vars, а потом записывать в БД информацию о фото в таблицу imgs? (надеюсь у вас там только пути к фото , а не сами фото)

А пути сохранить в переменную, через конкатенацию? или массив? не знаю как это делать. Есть пример какой нибудь?

  Ответить  
 
 автор: Valick   (03.02.2016 в 17:23)   письмо автору
 
   для: Sshell   (03.02.2016 в 17:15)
 

в интернете полно примеров
https://www.google.ru/search?q=%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0+%D1%84%D0%BE%D1%82%D0%BE+php+mysql&ie=utf-8&oe=utf-8&gws_rd=cr&ei=PQ2yVvy7FMmYsgGX6Li4BA

  Ответить  
 
 автор: Sshell   (03.02.2016 в 17:42)   письмо автору
 
   для: Valick   (03.02.2016 в 17:23)
 

Всё это я перелопатил и как загружаются фото знаю, а как заносить их в БД и связать с нужной записью нигде не найду.

  Ответить  
 
 автор: elenaki   (03.02.2016 в 16:59)   письмо автору
 
   для: Sshell   (03.02.2016 в 15:30)
 

Зачем грузить в отдельном окне, что мешает в одной форме все сделать?

  Ответить  
 
 автор: Sshell   (03.02.2016 в 17:18)   письмо автору
 
   для: elenaki   (03.02.2016 в 16:59)
 

Фоток загружается как правило несколько или вобще не загружается(не всегда надо).

  Ответить  
 
 автор: Trianon   (03.02.2016 в 21:57)   письмо автору
 
   для: Sshell   (03.02.2016 в 17:18)
 

Если возможна ситуация, когда фоток вообще не будет, то что мешает создать строку в vars сразу, не дожидаясь загрузки фоток?
А потом, при необходимости добавлять строки в imgs, и опять же если нужно - модифицировать поля уже имеющейся строки в vars?

  Ответить  
 
 автор: elenaki   (04.02.2016 в 13:09)   письмо автору
 
   для: Sshell   (03.02.2016 в 17:18)
 

Я скриптом добавляю поля для загрузки файлов (для админа - сколько угодно, для юзера - не больше пяти). При обработке формы проверяю, есть ли файлы, если есть, то в цикле их загружаю и вставляю пути в базу (уже после того, как запись самого объявления закончена и известен его id).

  Ответить  
 
 автор: confirm   (03.02.2016 в 17:45)   письмо автору
 
   для: Sshell   (03.02.2016 в 15:16)
 

Тут многое зависит от того какие условия определяются задачей "загрузить фото".

  Ответить  
 
 автор: Sshell   (03.02.2016 в 18:18)   письмо автору
 
   для: confirm   (03.02.2016 в 17:45)
 

Попробую сформулировать: пути несколько загруженных фоток вносятся в некую переменную, а при sabmit в форме записываются в таблицу imgs, связанные по id с записью в таблице vars.
Как это реализовать пока не знаю.

  Ответить  
 
 автор: confirm   (03.02.2016 в 18:34)   письмо автору
 
   для: Sshell   (03.02.2016 в 18:18)
 

Не то. Если файлы загружаются и при этом при ошибках загрузки сервер не реагирует на них, то это одно, но если сервер обязан реагировать на них, то это будет уже иное.

  Ответить  
 
 автор: Sshell   (03.02.2016 в 19:19)   письмо автору
 
   для: confirm   (03.02.2016 в 18:34)
 

Типа этого?


<?php
$uploaddir 
'images/fs/';

$apend=date('YmdHis').rand(100,1000).'.jpg'

$uploadfile "$uploaddir$apend"

if((
$_FILES['userfile']['type'] == 'image/gif' || $_FILES['userfile']['type'] == 'image/jpeg' || $_FILES['userfile']['type'] == 'image/png') && ($_FILES['userfile']['size'] != and $_FILES['userfile']['size']<=3145728)) 


  if (
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) 
   { 

   
$size getimagesize($uploadfile); 

     if (
$size[0] < 1501 && $size[1]<1501
     { 
     
// если размер изображения не более 1500 пикселей по ширине и не более 1500 по  высоте 
     
echo "Файл загружен. Путь к файлу: <b>http:/yoursite.ru/".$uploadfile."</b>"
     echo 
"<img src=$uploadfile  width=100 height=100>";
     
     } else {
     echo 
"Загружаемое изображение превышает допустимые нормы (ширина не более - 500; высота не более 1500)"
     
unlink($uploadfile); 

     } 
   } else {
   echo 
"Файл не загружен, вернитеcь и попробуйте еще раз";
   } 
} else { 
echo 
"Размер файла не должен превышать 3Мб";

?>

  Ответить  
 
 автор: confirm   (03.02.2016 в 19:52)   письмо автору
 
   для: Sshell   (03.02.2016 в 19:19)
 

Использовать getimagesize() и при этом проверять тип как $_FILES['userfile']['type'] == 'image/gif' || ..., это глупо.
Сперва проверяется ключ error массива FILES, и только при отсутствие ошибки производятся действия. Да и речь идет о загрузке не файла, а файлов. Если при получении формы еще проверяются по условиям и данные формы, то надо ли говорить о том, что возможны ситуации: а) файлы загружены без ошибок и по условиям, но данные формы не отвечают условиям , б) файлы загружены с ошибками, данные нет, в) и файлы и данные имеют ошибки.

Нужен диалог, нужно временное хранение файлов на сервере, чем может являться сессия, как в случае а), чтобы не заливать их на сервер повторно, так и пока не получим id записи.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования