Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Добавление в БД записи файлов записные в $_FILES

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
shahin
Отправлено: 06 Февраля, 2017 - 18:43:31
Post Id


Забанен


Покинул форум
Сообщений всего: 116
Дата рег-ции: Март 2014  


Помог: 0 раз(а)




Здравствуйте, есть поля в бд img1,img2,img3,img4,img5,img6. Есть скрипт загрузки несколько файлов. максимальная загрузка 5 файлов, записываются они в $_FILES. Мне нужно чтобы они записывались в пол по очереди. Пробовал так но это не работает:
PHP:
скопировать код в буфер обмена
  1.    
  2.   if (!empty($files_s)) {
  3.                 $img_str = implode(',', $files);
  4.                 connectDB();
  5.                 $mysqli->query("INSERT INTO `elan`   (`img1`,`img2`,`img3`,`img4`,`img5`,`img6`) VALUES ('" . $img_str . "')");
  6.                 closeDB();
  7.                     }
  8.  
 
 Top
teleoperator27
Отправлено: 06 Февраля, 2017 - 19:21:45
Post Id



Посетитель


Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017  


Помог: 21 раз(а)




ну теперь бы еще структуру БД увидеть и узнать, как они должны записываться в нее. В одно поле? каждая в свое? Вопрос нормально сформулировать надо, полответа уже будет
 
My status
 Top
shahin
Отправлено: 06 Февраля, 2017 - 20:21:41
Post Id


Забанен


Покинул форум
Сообщений всего: 116
Дата рег-ции: Март 2014  


Помог: 0 раз(а)




teleoperator27 пишет:
ну теперь бы еще структуру БД увидеть и узнать, как они должны записываться в нее. В одно поле? каждая в свое? Вопрос нормально сформулировать надо, полответа уже будет


Каждое в свое поле. Например: 1картинка в $img1 и т.д.
конечно думаю лучше было-бы чтобы через запятую в оно поле.
 
 Top
teleoperator27
Отправлено: 06 Февраля, 2017 - 20:35:20
Post Id



Посетитель


Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017  


Помог: 21 раз(а)




потому что ты пытаешься вставить в несколько полей одну строку. у тебя же в $img_str хранится сейчас одна строка img1,img2img3,img4,img5. И ты пытаешься сделать запрос

CODE (htmlphp):
скопировать код в буфер обмена
  1. INSERT INTO `elan`   (`img1`,`img2`,`img3`,`img4`,`img5`,`img6`) VALUES ( 'img1, img2, img3, img4, img5' )


а надо или разбить строку и заносить каждую картинку в свое поле

CODE (htmlphp):
скопировать код в буфер обмена
  1. INSERT INTO `elan`   (`img1`,`img2`,`img3`,`img4`,`img5`,`img6`) VALUES ( 'img1', 'img2', 'img3', 'img4', 'img5' )


или всю строку сразу в одно поле

CODE (htmlphp):
скопировать код в буфер обмена
  1. INSERT INTO `elan`   (`img`) VALUES ( 'img1, img2, img3, img4, img5' )


с кавычками надо внимательне
 
My status
 Top
shahin
Отправлено: 06 Февраля, 2017 - 21:54:33
Post Id


Забанен


Покинул форум
Сообщений всего: 116
Дата рег-ции: Март 2014  


Помог: 0 раз(а)




teleoperator27 пишет:
потому что ты пытаешься вставить в несколько полей одну строку. у тебя же в $img_str хранится сейчас одна строка img1,img2img3,img4,img5. И ты пытаешься сделать запрос

CODE (htmlphp):
скопировать код в буфер обмена
  1. INSERT INTO `elan`   (`img1`,`img2`,`img3`,`img4`,`img5`,`img6`) VALUES ( 'img1, img2, img3, img4, img5' )


а надо или разбить строку и заносить каждую картинку в свое поле

CODE (htmlphp):
скопировать код в буфер обмена
  1. INSERT INTO `elan`   (`img1`,`img2`,`img3`,`img4`,`img5`,`img6`) VALUES ( 'img1', 'img2', 'img3', 'img4', 'img5' )


или всю строку сразу в одно поле

CODE (htmlphp):
скопировать код в буфер обмена
  1. INSERT INTO `elan`   (`img`) VALUES ( 'img1, img2, img3, img4, img5' )


с кавычками надо внимательне
а как сделать чтобы они были через запятую?
 
 Top
teleoperator27
Отправлено: 07 Февраля, 2017 - 03:36:49
Post Id



Посетитель


Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017  


Помог: 21 раз(а)




shahin пишет:
а как сделать чтобы они были через запятую?
Они у тебя УЖЕ через запятую
в твоем случае
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  
  3. $img_str = implode(',', $files);
  4. print_r($img_str);
  5.  

результат

img1, img2, img3, img4, img5
 
My status
 Top
shahin
Отправлено: 08 Февраля, 2017 - 21:04:28
Post Id


Забанен


Покинул форум
Сообщений всего: 116
Дата рег-ции: Март 2014  


Помог: 0 раз(а)




Все равно не работает, выдаёт ошибку:
Цитата:


Warning: implode(): Invalid arguments passed in /storage/emulated/0/SERVER/htdoc s/elan/form_ad.php on line 44




PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <?PHP
  4. //ширина и высота в пикселях
  5. $pic_weight = 30000;
  6. $pic_height = 30000;
  7.  
  8. if (isset($_FILES))
  9. {
  10.   //пролистываем весь массив изображений по одному $_FILES['images']['name'] as $k=>$v
  11.   foreach ($_FILES['images']['name'] as $k=>$v)
  12.   {
  13.     //директория загрузки
  14.     $uploaddir = "img_elan/";
  15.     //новое имя изображения
  16.  
  17.     $apend=rand(1,100).rand(100,1000).'.png';
  18.     //путь к новому изображению
  19.     $uploadfile = "$uploaddir$apend";
  20.  
  21.     //Проверка расширений загружаемых изображений
  22.     if($_FILES['images']['type'][$k] == "image/gif" || $_FILES['images']['type'][$k] == "image/png" ||
  23.     $_FILES['images']['type'][$k] == "image/jpg" || $_FILES['images']['type'][$k] == "image/jpeg")
  24.     {
  25.       //черный список типов файлов
  26.       $blacklist = array(".php", ".phtml", ".php3", ".php4");
  27.       foreach ($blacklist as $item)
  28.       {
  29.         if(preg_match("/$item\$/i", $_FILES['images']['name'][$k]))
  30.         {
  31.           echo "Нельзя загружать скрипты.";
  32.           exit;
  33.         }
  34.       }
  35.  
  36.       //перемещаем файл из временного хранилища
  37.       if (move_uploaded_file($_FILES['images']['tmp_name'][$k], $uploadfile))
  38.       {
  39.         //получаем размеры файла
  40.         $size = getimagesize($uploadfile);
  41.         //проверяем размеры файла, если они нам подходят, то оставляем файл
  42.         if ($size[0] < $pic_weight && $size[1] < $pic_height)
  43.         {
  44.                
  45.     $img_f = $apend;
  46.                echo $img_str = implode(',', $img_f);
  47.       echo $img_str;
  48.                /* connectDB();
  49.                 $mysqli->query("INSERT INTO `elan`   (`img1`,`img2`,`img3`,`img4`,`img5`,`img6`) VALUES ('" . $img_st . "')");
  50.                 closeDB();*/
  51.          
  52.  
  53.           //echo "<center><br>Файл ($uploadfile) загружен.</center>";
  54.         }
  55.         //если размеры файла нам не подходят, то удаляем файл unlink($uploadfile);
  56.         else
  57.         {
  58.           echo "<center><br>Размер пикселей превышает допустимые нормы.</center>";
  59.           unlink($uploadfile);
  60.         }
  61.       }
  62.       else
  63.         echo "<center><br>Файл не загружен, вернитесь и попробуйте еще раз.</center>";
  64.     }
  65.     else
  66.       echo "<center><br>Можно загружать только изображения в форматах jpg, jpeg, gif и png.</center>";
  67.   }
  68. }
  69. ?>
  70.  
  71.  
  72.  

(Добавление)
Попробовал сделать так:
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3.  $array[] = $apend;
  4.                echo $img_str = implode(',', $array);
  5.       echo $img_str;
  6.  


Но получилась каша:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. 76959.png76959.png76959.png,85583.png76959.png,85583.png76959.png,85583.png,30639.png76959.png,85583.png,30639.png76959.png,85583.png,30639.png,21858.png76959.png,85583.png,30639.png,21858.png76959.png,85583.png,30639.png,21858.png,95953.png76959.png,85583.png,30639.png,21858.png,95953.png76959.png,85583.png,30639.png,21858.png,95953.png,18418.png76959.png,85583.png,30639.png,21858.png,95953.png,18418.png
  3.  
  4.  
  5.  

(Отредактировано автором: 08 Февраля, 2017 - 21:30:11)

 
 Top
teleoperator27
Отправлено: 08 Февраля, 2017 - 22:47:06
Post Id



Посетитель


Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017  


Помог: 21 раз(а)




перед тем как что то делать с массивом, распечатай его и посмотри, что в неех ранится
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB