Вставка нескольких изображений в базу данных - PHP PDO - PullRequest
0 голосов
/ 07 января 2020

Мне нужна небольшая помощь или совет. Я создаю расширенную форму хранения в PHP PDO. В форме должно быть загружено изображение поста (изображение заголовка) и изображения галереи (несколько изображений хранятся в базе данных в той же базе данных). Я сделал с хранения одного изображения в базе данных, но я застрял с несколькими изображениями магазина в той же базе данных. Я поставлю свой код здесь.

<?php require('includes/config.php'); 
    //if not logged in redirect to login page
    if(!$user->is_logged_in()){ header('Location: index.php'); } 
    // Upload posted information
    include('core/connection.php');
    include('functions/main.php');
    if($_POST){
        $nameproduct = $_POST['nameProduct'];
        $categoryproduct = $_POST['categoryProduct'];
        $keywordproduct = $_POST['keywordProduct'];
        $addressproduct = $_POST['addressProduct'];
        $latproduct = $_POST['latProduct'];
        $lonproduct = $_POST['lonProduct'];
        $locationproduct = $_POST['locationProduct'];
        $telproduct = $_POST['telProduct'];
        $emailproduct = $_POST['emailProduct'];
        $siteproduct = $_POST['siteProduct'];
        $pdate = date("Y-m-d H:i:s");
        if(empty($nameproduct) or empty($keywordproduct)){
            $errors = '<div class="error2"><p> All fields are required. Please try again</p></div>';
        }else{
            if (isset($_FILES['post_image'])===true) {       
                if (empty($_FILES['post_image']['name']) ===true) {
                    $errors = '<div class="error2">Please Choose a Post Image</div>';
                 }else {   
                     $allowed = array('jpg','jpeg','gif','png'); 
                     $file_name = $_FILES['post_image']['name']; 
                     $file_extn = strtolower(end(explode('.', $file_name)));
                     $file_temp = $_FILES['post_image']['tmp_name'];
                     if (in_array($file_extn, $allowed)===true) {
                        $file_parh = 'images/' . substr(md5(time()), 0, 10).'.'.$file_extn;
                        move_uploaded_file($file_temp, $file_parh);                         
                        $query = $pdo->prepare("INSERT INTO `go-wp`.`products` (`post_id`, `nameProduct`, `categoryProduct`, `keywordProduct`, `addressProduct`, `latProduct`, `lonProduct`, `locationProduct`, `telProduct`, `emailProduct`, `siteProduct`, `post_date`, `post_image`) VALUES (NULL, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
                        $query->bindValue(1, $nameproduct); 
                        $query->bindValue(2, $categoryproduct); 
                        $query->bindValue(3, $keywordproduct);
                        $query->bindValue(4, $addressproduct);
                        $query->bindValue(5, $latproduct);
                        $query->bindValue(6, $lonproduct);
                        $query->bindValue(7, $locationproduct);
                        $query->bindValue(8, $telproduct);
                        $query->bindValue(9, $emailproduct);
                        $query->bindValue(10, $siteproduct);
                        $query->bindValue(11, $pdate);  
                        $query->bindValue(12, $file_parh);
                        $query->execute();  
                        header('Location: view_product.php');   
                    }
                }
            }
        }   
    }
?>

Код выше настоящего хранит одно изображение в базе данных (работает хорошо). Но когда я добавляю в код HTML следующий код (ниже), у меня возникают проблемы. Что написать, как создать хороший сценарий. Я открываю форму html <form action="" method="post" enctype="multipart/form-data">

<div class="col-md-4">
    <div class="act-widget fl-wrap">
        <div class="profile-edit-header fl-wrap">
            <h4>Gallery product</h4>
        </div>
        <div class="add-list-media-wrap fuzone">
            <div class="fu-text">
                 <span><i class="fa fa-picture-o"></i> Add multiple images</span>
            </div>
            <input class="input-group" class="upload" type="file" name="post_image" id="imgInput" />
        </div>
    </div>
</div>

Полный HTML код выглядит следующим образом:

<form action="" method="post" enctype="multipart/form-data">
    <div class="profile-edit-container add-list-container">
        <div class="profile-edit-header fl-wrap">
            <h4>Information product</h4>
        </div>
        <div class="custom-form">
            <label>Product name<i class="fa fa-briefcase"></i></label>
            <input type="text" name="nameProduct" placeholder="Product name" value=""/>
            <div class="row">
                <div class="col-md-6">
                    <label>Category</label>
                    <select name="categoryProduct" data-placeholder="Select product category:" class="chosen-select">
                        <option value="Choose category" selected>Choose category:</option>
                        <option value="Category1">Category1</option>
                        <option value="Category2">Category2</option>
                        <option value="Category3">Category3</option>
                        <option value="Category4">Category4</option>
                    </select>
                </div>
                <div class="col-md-6">
                    <label>Keywords<i class="fa fa-key"></i></label>
                    <input type="text" name="keywordProduct" placeholder="Max 5 keywords" value=""/>
                </div>
            </div>
        </div>
    </div>
    <div class="profile-edit-container add-list-container">
        <div class="profile-edit-header fl-wrap">
            <h4>Product location</h4>
        </div>
        <div class="custom-form">
            <label>Address<i class="fa fa-map-marker"></i></label>
            <input type="text" name="addressProduct" placeholder="Address" value=""/>
            <div class="row">
                <div class="col-md-6">
                    <label>Latitude:<i class="fa fa-map-marker"></i></label>
                    <input type="text" name="latProduct" id="lat" placeholder="Latitude" value=""/>                                                    
                </div>
                <div class="col-md-6">
                    <label>Longitude:<i class="fa fa-map-marker"></i></label>
                    <input type="text" name="lonProduct" id="long" placeholder="Longitude" value=""/>                                                    
                </div>
            </div>
            <div class="map-container">
                <div id="singleMap" data-latitude="40.7427837" data-longitude="-73.11445617675781"></div>
            </div>
            <label>Location</label>
            <select name="locationProduct" data-placeholder="Location" class="chosen-select" >
                <option value="Choose location" selected>Choose location:</option>
                <option value="Location1">Location1</option>
                <option value="Location2">Location2</option>
                <option value="Location3">Location3</option>
                <option value="Location4">Location4</option>
                <option value="Location5">Location5</option>
                <option value="Location6">Location6</option>
            </select>
            <label>Phone<i class="fa fa-phone"></i></label>
            <input type="text" name="telProduct" placeholder="Phone" value=""/>
            <label>Email<i class="fa fa-envelope-o"></i></label>
            <input type="text" name="emailProduct" placeholder="Email" value=""/>
            <label>Site<i class="fa fa-globe"></i></label>
            <input type="text" name="siteProduct" placeholder="Site" value=""/>
        </div>
    </div>
    <div class="col-md-4">
        <div class="act-widget fl-wrap">
            <div class="profile-edit-header fl-wrap">
                <h4>Header image</h4>
            </div>
            <div class="add-list-media-wrap fuzone">
                <div class="fu-text">
                    <span><i class="fa fa-picture-o"></i> Add header image</span>
                </div>
                <input class="input-group" class="upload" type="file" name="post_image" id="imgInput" />
            </div>
        </div>
    </div>
    <div class="col-md-4">
        <div class="act-widget fl-wrap">
            <div class="profile-edit-header fl-wrap">
                <h4>Gallery image</h4>
            </div>
            <div class="add-list-media-wrap fuzone">
                <div class="fu-text">
                    <span><i class="fa fa-picture-o"></i> Add gallery images</span>
                </div>
                <input class="input-group" class="upload" type="file" name="post_image" id="imgInput" />
            </div>
        </div>
    </div>
    <div class="custom-form">
        <button name="submit" class="btn big-btn color-bg flat-btn">Add product<i class="fa fa-angle-right"></i></button>
    </div>
</form>

Как сгенерировать код для хранения многообразных изображений в базе данных с этим кодом. Спасибо всем

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...