2014-01-03 2 views
1

Я работаю над базовым сайтом электронной коммерции, использующим PHP/MYSQL. Мне просто нужно знать, как загрузить несколько изображений для продукта, а затем отобразить их на странице продуктов. Что касается загрузки нескольких изображений, я не хочу использовать добавление или открытые исходные коды. У меня, скорее всего, есть 3-4 дополнительных поля для загрузки файлов!загружать и отображать несколько изображений для одного продукта?

И я не могу разглядеть изображение изображений (несколько изображений для 1 продукта). Я действительно не понимаю, как это должно работать! поэтому любые советы по простым терминам будут оценены.

В настоящее время я могу загрузить только 1 изображение за продукт.

Вот что у меня есть до сих пор, пожалуйста, проигнорируйте запросы mysql в первом файле, так как это пока не происходит, пока я не переработал mysql для mysqli. Просто нужно, чтобы получить функции сортируются первыми:

upload.php

<?php 
// Parse the form data and add inventory item to the system 
if (isset($_POST['product_name'])) { 

    $product_name = mysql_real_escape_string($_POST['product_name']); 
    $price = mysql_real_escape_string($_POST['price']); 
     $quantity = mysql_real_escape_string($_POST['quantity']); 
    $category = mysql_real_escape_string($_POST['category']); 
    $details = mysql_real_escape_string($_POST['details']); 
    // See if that product name is an identical match to another product in the system 
    $sql = mysql_query("SELECT id FROM products WHERE product_name='$product_name' LIMIT 1"); 
    $productMatch = mysql_num_rows($sql); // count the output amount 
    if ($productMatch > 0) { 
     echo 'Sorry you tried to place a duplicate "Product Name" into the system, <a href="add.php">click here</a>'; 
     exit(); 
    } 
    // Add this product into the database now 
    $sql = mysql_query("INSERT INTO products (product_name, price, quantity, details, category, date_added) 
     VALUES('$product_name','$price','$quantity','$details','$category',now())") or die (mysql_error()); 
    $pid = mysql_insert_id(); 
    // Place image in the folder 
    $newname = "$pid.jpg"; 
    move_uploaded_file($_FILES['fileField']['tmp_name'], "../inventory_images/$newname"); 
    header("location: add.php"); 
    exit(); 
} 
?> 

product.php < < < это страница, которая отображает сведения о продукте и изображения.

<?php 
// Check to see the URL variable is set and that it exists in the database 
if (isset($_GET['id'])) { 
    // Connect to the MySQL database 
    include "config/connect.php"; 
    $id = preg_replace('#[^0-9]#i', '', $_GET['id']); 
    // Use this var to check to see if this ID exists, if yes then get the product 
    // details, if no then exit this script and give message why 
    $sql = "SELECT * FROM products WHERE id='$id' LIMIT 1"; 
    $query = mysqli_query($db_conx, $sql); 
    $productCount = mysqli_num_rows($query); // count the output amount 
    if ($productCount > 0) { 
     // get all the product details 
      while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){ 
      $product_name = $row["product_name"]; 
      $price = $row["price"]; 
      $details = $row["details"]; 
      $quantity = $row["quantity"]; 
      $category = $row["category"]; 
      $date_added = strftime("%b %d, %Y", strtotime($row["date_added"])); 
     } 

    } else { 
     echo "That item does not exist."; 
     exit(); 
    } 

} else { 
    echo "Data to render this page is missing."; 
    exit(); 
} 

?> 

<table width="900" border="0" cellspacing="0" cellpadding="0"> 
    <tr> 
    <td width="300" rowspan="5" align="right" valign="top" style="padding-top:10px;"><img src="inventory_images/<?php echo $id; ?>.jpg" width="300" height="450" alt="<?php echo $product_name; ?>" /></td> 
    <td width="126" height="106">&nbsp;</td> 
    <td width="274"><h3 style="font-family:Times New Roman; font-size:1.8em;"><?php echo $product_name; ?></h3></td> 
    </tr> 
    <tr> 
    <td height="120">&nbsp;</td> 
    <td><?php echo $details; ?></td> 
    </tr> 
    <tr> 
    <td height="110">&nbsp;</td> 
    <td style="font-family:Times New Roman; font-size:1.8em;">Price: £<?php echo $price; ?></td> 
    </tr> 
    <tr> 
    <td height="50">&nbsp;</td> 
    <td style="font-family:Times New Roman; font-size:1.8em;">Quantity Left: <?php echo $quantity; ?></td> 
    </tr> 
</table> 

Благодаря

+0

В этом коде нет ничего, что пытается сохранить одно изображение в базе данных, не говоря уже о нескольких. – Jessica

+0

@ Джессика, ХОРОШО Вы не могли ошибиться. взгляните на это: 'move_uploaded_file ($ _FILES ['fileField'] ['tmp_name']," ../ inventory_images/$ newname ");' – user2953877

+0

@Jessica, где хранятся изображения? они сохраняются в папке inventory_images, и они получают переименование в порядке, и они также хорошо отображаются на странице продукта. это всего лишь один продукт на данный момент. – user2953877

ответ

2

Ну, как вы сейчас делаете это на самом деле не настроен для нескольких фотографий, так как вы не хранить ссылку на фотографию в базе данных. Вы просто переименовываете изображение в первичный ключ продукта. Поэтому вам нужно либо сделать что-то вроде 1_1.jpg 1_2.jpg, либо вам нужно будет создать таблицу базы данных, в которой хранятся имя файла и идентификатор продукта, чтобы вы могли иметь отношения от одного до многих.

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

Для отображения вам нужно будет либо вытащить записи из таблицы фотографий db, либо использовать glob(), чтобы найти все файлы, начинающиеся с первичного ключа + '_'.

Также функции FYI mysql больше не должны использоваться, поскольку они устарели.

+0

Спасибо, я понимаю, что функция mysql устарела.вот почему я сказал, пожалуйста, проигнорируйте это, поскольку я собираюсь преобразовать его в mysqli, как только функции будут готовы! – user2953877

+0

Я действительно не хочу сохранять изображения в базе данных mysql, так как это не очень хорошая практика! так что бы вы могли помочь мне переименовать изображения в 1_1.jpg, 2_1.jpg в соответствии с моим кодом? – user2953877

+1

Я не говорю, чтобы хранить изображения в db. Я говорю создать таблицу, в которой хранятся имя файла и идентификатор продукта. – Pitchinnate

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