PHP изображение не отображается - PullRequest
0 голосов
/ 17 ноября 2011

Я скачал учебник в Интернете, который содержал корзину покупок php и базу данных mysql с уже встроенными таблицами. Мне удалось интегрировать всю эту корзину покупок в мой собственный веб-сайт. У меня есть форма на моем веб-сайте, с помощью которой администратор может загружать продукты, которые отправляются в базу данных, а также отображаются на веб-сайте для просмотра пользователями. проблема у меня с изображениями. в учебнике изображения были вручную введены в базу данных mysql.

У меня есть следующая форма:

    <form action="productsadded.php" method="post">

<table border="0">
  <tr>
    <td><label for="name">Product Name:</label>
</td>
    <td><span id="sprytextfield1">
      <input type="text" name="name" id="name" />
      <span class="textfieldRequiredMsg">Enter Products Name</span></span></td>
  </tr>
  <tr>
    <td><label for="description">Description: </label>
</td>
    <td><span id="sprytextarea1">
      <textarea name="description" id="description" cols="45" rows="5"></textarea>
      <span class="textareaRequiredMsg">Enter Products Description</span></span></td>
  </tr>
  <tr>
    <td>    <label for="price">Price: </label>
</td>
    <td><span id="sprytextfield2">
    <input type="text" name="price" id="price" />
    <span class="textfieldRequiredMsg">Enter Price</span><span class="textfieldInvalidFormatMsg">Numbers Only</span></span></td>
  </tr>
  <tr>
    <td><label for="price">Image: </label></td>
    <td><input name="picture" id="picture" accept="image/jpeg" type="file" /></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input name="" type="submit" value="Add Product" /></td>
  </tr>
</table>

страница продуктов добавлена ​​следующим образом:

  <?php


$name = $_REQUEST['name'];
$description = $_REQUEST['description'];
$price = $_REQUEST['price'];
$picture = $_REQUEST['picture'];

$con = mysql_connect("localhost","*****","*****");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db('jahedhus_91', $con);

$sql="INSERT INTO products (name, description, price, picture) VALUES ('$name', '$description', '$price', '$picture')";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }

mysql_close($con)
?>

проблема, с которой я сталкиваюсь, заключается в том, что после добавления продукта в базу данных изображение продукта не отображается на веб-сайте. Наименование, детали и цены продуктов показаны за исключением изображения.

оператор sql для отображения информации о продукте выглядит следующим образом:

<table border="0" cellpadding="2px" width="600px">
    <?
        $result=mysql_query("select * from products");
        while($row=mysql_fetch_array($result)){

    ?>
<tr>
    <td><img src=<?=$row['picture']?> /></td>
    <td>    <b><a href="products.php?product_id=<?=$row['serial']?>"><?=$row['name']?></a></b><br />
            <?=$row['description']?><br />
            Price:<big style="color:green">
                £<?=$row['price']?></big><br /><br />
            <input type="button" value="Add to Cart" onclick="addtocart(<?=$row['serial']?>)" />
        </td>
    </tr>
<tr><td colspan="2"><hr size="1" /></td>
<? } ?>

извините за действительно длинный пост, любые предложения будут полезны.

спасибо

1 Ответ

0 голосов
/ 17 ноября 2011

На первый взгляд, я заметил, что в вашем теге формы нет enctype = "multipart / form-data".

<form action="productsadded.php" method="post" enctype="multipart/form-data">

На второй взгляд, я заметил, что вы пытаетесь сохранитьизображение непосредственно в базе данных с $_REQUEST['picture'].Это не сработает.Это действительно зависит от того, как корзина ссылается на изображения в базе данных.Это просто имя файла?в этом случае вам нужно будет использовать что-то вроде:

$target_path = 'path/to/images/'.basename( $_FILES['picture']['name']); 
move_uploaded_file($_FILES['picture']['tmp_name'], $target_path);

и сохранить $target_path в базе данных как рисунок.Это переместит загруженный файл в каталог с изображениями продуктов.

Я бы порекомендовал вам следовать некоторым учебникам по загрузке php-файлов отдельно от этой корзины для покупок и сначала изучить его.

Редактировать: Только что заметил комментарий, что вы хотите сохранить изображение в базе данных.Это сложнее, но выглядит как хороший урок: http://www.phpriot.com/articles/storing-images-in-mysql

...