我下载了一个网络教程,其中包含一个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> </td>
<td><input name="" type="submit" value="Add Product" /></td>
</tr>
</table>
productsadded页面如下:
<?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>
<? } ?>
对于这篇很长的帖子感到抱歉,任何建议都会有所帮助。
感谢
答案 0 :(得分:0)
乍一看,我注意到您的表单标签中没有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