2013-12-21 3 views
0

Я перефразирую свой вопрос.Хранение нескольких изображений в mysql

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

Единственная часть, с которой я столкнулся, состоит из нескольких частей изображения.

Кроме того, моя форма динамически генерируется с использованием jquery.

моя структура БД будет как

ид | имя | изображение | описание | цена

Это мой HTML:

<td><input type="text" class="form-control" name="item[]" placeholder="Name of Item" /></td> 
<td><input type="text" class="form-control" name="desc[]" placeholder="Description" /></td> 
<td><input type="text" class="form-control" name="price[]" placeholder="Price" /></td> 
<td><input type="text" class="form-control" name="brand[]" placeholder="Brand" /></td> 
<td><input type="file" name="images" class="form-control" /></td> 
<input type="submit" id="save-product" class="btn btn-success" name="submit" value="Submit"> 

Это мой PHP:

if(isset($_POST['submit'])){ 
$name = $_FILES['images']['name']; 
$type = $_FILES['images']['type']; 
$size = $_FILES['images']['size']; 
$temp = $_FILES['images']['tmp_name']; 
$error = $_FILES['images']['error']; 
$allowed = array(
    "image/jpeg", 
    "image/jpg", 
    "image/png"); 
$con = mysqli_connect("localhost","root", "", "db_elective"); 
if(in_array($type, $allowed) && $size < 2000000 && !empty($_POST['item'])){ 
    $ext = end(explode(".", $name)); 
    $newFilename = sha1(date("Y-m-d h:i:s")) . "." . $ext; 
    if(move_uploaded_file($temp, "../uploaded" . $newFilename)){ 

     $item = $_POST['item']; 
     $desc = $_POST['desc']; 
     $price = $_POST['price']; 
     $brand = $_POST['brand']; 
     $image = $newFilename; 

     for($x = 0; $x < count($item); $x++){ 
      $vItem = $item[$x]; 
      $vdesc = $desc[$x]; 
      $vbrand = $brand[$x]; 
      $vImg = $image[$x]; 
      $vprice = $price[$x]; 
      mysqli_query($con, "INSERT INTO tb_items (product_name, product_desc, product_img, product_brand, price) 
       VALUES('$vItem','$vdesc', '$vImg', '$vbrand', '$vprice')"); 
     } 


    } 

}else{ 
    echo "Wrong"; 
} 

} 
+1

Вы действительно должны переключиться на заранее подготовленные заявления. – jeroen

+0

Возможный дубликат [Загрузка и хранение файлов с несколькими файлами в папке и базе данных] (http://stackoverflow.com/questions/4923866/php-multiple-image-file-upload-and-storage-to-folder-and- база данных) –

ответ

0

во-первых, изменить форму, если вы принимаете несколько изображений одновременно, -

<td><input type="file" name="images[]" class="form-control" /></td> 
<td><input type="file" name="images[]" class="form-control" /></td> 

, а затем вы можете одновременно отображать несколько изображений - , а затем обрабатывать изображения, используя forea ch loop --i.e. скажем, просто загружая один за другим и вставляя новую запись для каждого из них.

+0

Как его вставить? наряду с другими значениями (название, описание и т. д.) .. для цикла или foreach? – eaponz

0

Вы можете использовать обозначение массива в PHP, как вы бы в обычных полях формы:

Image 1: <input type="file" name="images[]" class="form-control" /> 
Image 2: <input type="file" name="images[]" class="form-control" /> 
+0

Как его можно вставить? наряду с другими значениями (название, описание и т. д.) .. для цикла или foreach? – eaponz

Смежные вопросы