За последние 24 часа нас посетили 23008 программистов и 1234 робота. Сейчас ищут 756 программистов ...

Загрузка фото на сайт и запись пути в mysql

Тема в разделе "PHP и базы данных", создана пользователем Francuzz555, 23 мар 2021.

  1. Francuzz555

    Francuzz555 Новичок

    С нами с:
    22 мар 2021
    Сообщения:
    6
    Симпатии:
    0
    Добрый день уважаемые форумчане, помогите пожалуйста новичку, уже неделю бьюсь не могу сделать то одно то другое.
    в общем есть форма :
    HTML:
    1.  
    2. <div class="form-group">
    3.             <label for="exampleInputEmail1">ФОТО</label>
    4.            
    5.             <input multiple name="up_photo[]" type="file" value="<?= isset($_GET['id']) ? $good->getField('up_photo') : ''?> " class="form-control" id="up_photo" >
    6.         </div>
    7.         <div class="form-group">
    8.             <label for="exampleInputEmail1">Артикул</label>
    9.             <input name="articul" type="text" value="<?= isset($_GET['id']) ? $good->getField('articul') : ''?> " class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp">
    10.         </div>
    11.  
    позиций много , не суть, сделал поле для загрузки файлов (файлы загружаются), путь я выяснил ниже есть код, (фоток может быть много, поэтому сделал массив и положил в json), т.е у меня теперь есть 2 новых значения для fields это up_photo, for values $jsonStr. Их надо добавить к массиву. не понимаю что и куда написать чтоб дописать в массив. Подскажите плиз



    PHP:
    1. $fields = [];
    2. $values = [];
    3.  
    4. //первая переменная содержит ключ вторая значение
    5. foreach ($_POST as $field=>$value) {
    6.     if ($field != "class_name") {
    7.         $fields[] = $field;
    8.         $values[] = " ' ".$value." ' ";
    9.      
    10.  
    11.     }
    12.    
    13. }
    14.  
    15.  
    16. //создаем коробки под ключи и значения
    17.  
    18. require_once($_SERVER['DOCUMENT_ROOT'].'/internetss/system/classes/autoload.php');
    19.  
    20. $target_dir = 'images/categories/';
    21.  
    22. if( isset($_FILES['up_photo']['name'])) {
    23.  
    24.     $total_files = count($_FILES['up_photo']['name']);
    25.  
    26.     for($key = 0; $key < $total_files; $key++) {
    27.  
    28.       // Check if file is selected
    29.       if(isset($_FILES['up_photo']['name'][$key])
    30.                         && $_FILES['up_photo']['size'][$key] > 0) {
    31.  
    32.         $original_filename = $_FILES['up_photo']['name'][$key];
    33.         $target = $target_dir . basename($original_filename);
    34.         $tmp  = $_FILES['up_photo']['tmp_name'][$key];
    35.         move_uploaded_file($tmp, $target);
    36.         }
    37.        }
    38.       }
    39.  
    40.  
    41.       $photos = array ();
    42.       $i = 0;
    43.        foreach ($_FILES['up_photo']['name'] as $onePhoto){
    44.         $photos[$i] = "$target_dir$onePhoto";
    45.         $i++;
    46.        
    47.       };
    48.    
    49.  
    50.       $jsonStr = json_encode($photos);
    51.      
    52. var_dump($_POST);
    53.  
    54.  
    55.      
    56.       var_dump($photos);
    57.  
    58.      
    59.  
    60.  
    61. $className = $_POST['class_name'];
    62. $className::createLine($fields,$values);
     
  2. Drunkenmunky

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

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    Раскодировать json в массив.
    Добавить\заменить в массив новые значения.
    Закодировать массив в json.
     
  3. Francuzz555

    Francuzz555 Новичок

    С нами с:
    22 мар 2021
    Сообщения:
    6
    Симпатии:
    0
    а код
    а можно это как то кодом написать плиз ,
     
  4. Drunkenmunky

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

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    Можно.
    Давайте json, и что и куда в него добавить.
     
  5. Francuzz555

    Francuzz555 Новичок

    С нами с:
    22 мар 2021
    Сообщения:
    6
    Симпатии:
    0
    array(12) { ["class_name"]=> string(4) "Good" ["brand_id"]=> string(2) " 2" ["category_id"]=> string(2) " 1" ["sub_brand_id"]=> string(1) " " ["mark"]=> string(1) " " ["photo"]=> string(1) " " ["articul"]=> string(2) " 7" ["title"]=> string(1) " " ["price"]=> string(0) "" ["double_price"]=> string(0) "" ["country"]=> string(0) "" ["description"]=> string(0) "" }
    это то что выдает мне var_dump ($_POST);
    PHP:
    1. $target_dir = 'images/categories/';
    2. if( isset($_FILES['up_photo']['name'])) {
    3.     $total_files = count($_FILES['up_photo']['name']);
    4.     for($key = 0; $key < $total_files; $key++) {
    5.       // Check if file is selected
    6.       if(isset($_FILES['up_photo']['name'][$key])
    7.                         && $_FILES['up_photo']['size'][$key] > 0) {
    8.         $original_filename = $_FILES['up_photo']['name'][$key];
    9.         $target = $target_dir . basename($original_filename);
    10.         $tmp  = $_FILES['up_photo']['tmp_name'][$key];
    11.         move_uploaded_file($tmp, $target);
    12.         }
    13.        }
    14.       }
    15.       $photos = array ();
    16.       $i = 0;
    17.        foreach ($_FILES['up_photo']['name'] as $onePhoto){
    18.         $photos[$i] = "$target_dir$onePhoto";
    19.         $i++;
    20.      
    21.       };
    22.  
    23.       $jsonStr = json_encode($photos);
    это то как я получаю фото из inputa с name=up_photo;

    var_dump($photos) дает вот что

    array(3) { [0]=> string(47) "images/categories/banner2new2 - копия.jpeg" [1]=> string(34) "images/categories/banner2new2.jpeg" [2]=> string(42)

    "images/categories/banner3_610x230_1d3.jpeg" }

    мне вот это надо как то положить в бд.

    то есть мне надо чтобы в мой $_POST () добавилось к массиву fields значение up_photo а вот пути добавились в values
     
  6. Drunkenmunky

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

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    Нет, так не пойдет.
    Расшифровывать неизвестно как он должен работающий код занятие непростое.
    И отнимет некоторое время. Заведомо бесполезно потраченное.
    Сконцентрируйте проблему в пару строк.
    Мол, вот массив(а не выдача var_dump ) или json строка, нужно добавить в неё такое-то значение и вернуть в виде массива или json строки(или объекта).
     
  7. Francuzz555

    Francuzz555 Новичок

    С нами с:
    22 мар 2021
    Сообщения:
    6
    Симпатии:
    0
    Понятно все с вами, я и сам разберусь рано или поздно, просто, горит время.
    Если бы мог помочь помог бы а не... понятно
     
  8. Drunkenmunky

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

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    Истерический шантаж не пройдет.
    Хотите помощи - сформулируйте проблему четко и ясно.
    А не "вот мой гениальный скрипт, но что-то не работает. Угадайте что от него хотел"
     
  9. Francuzz555

    Francuzz555 Новичок

    С нами с:
    22 мар 2021
    Сообщения:
    6
    Симпатии:
    0
    РУССКИМ ЯЗЫКОМ НАПИСАЛ , если не умеешь читать не пиши даже ничего; есть массив в него надо добавить данные дописать если , короче иди спи , ночь на дворе
     
  10. Drunkenmunky

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

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281