我有以下代码,使用mysql表中的php echo id显示给定的图像。 php是:
<?php include 'dbc.php'; page_protect();
$id=$_GET['id'];
if(!checkAdmin()) {header("Location: login.php");
exit();
}
$host = $_SERVER['HTTP_HOST'];
$host_upper = strtoupper($host);
$login_path = @ereg_replace('admin','',dirname($_SERVER['PHP_SELF']));
$path = rtrim($login_path, '/\\');
foreach($_GET as $key => $value) {
$get[$key] = filter($value);
}
foreach($_POST as $key => $value) {
$post[$key] = filter($value);
}
?>
<?php
if($_FILES['photo'])
{
$target = "images/furnishings/";
$target = $target . basename( $_FILES['photo']['name']);
$title = mysql_real_escape_string($_POST['title']);
$pic = "images/furnishings/" .(mysql_real_escape_string($_FILES['photo']['name']));
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))
{
mysql_query("update `furnishings` set `photo`='$pic' WHERE id='$id'") ;
echo "Image updated";
}
else
{
echo "Please select a new image to upload";
}
}
?>
HTML是:
<form enctype="multipart/form-data" action="editfurnimage.php" method="POST">
<table width="450" border="2" cellpadding="5"class="myaccount">
<tr>
<td width="35%" class="myaccount">Current Image: </td>
<td width="65%"><img src='<?php
mysql_select_db("dbname", $con);
mysql_set_charset('utf8');
$result = mysql_query("SELECT * FROM furnishings WHERE id='$id'");
while($row = mysql_fetch_array($result))
{
echo '' . $row['photo'] . '';
}
mysql_close($con);
?>' style="width:300px; height:300px;"></td>
</tr>
<tr>
<td class="myaccount">New Image: </td>
<td><input type="file" name="photo" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" class="CMSbutton" value="Add" /></td>
</tr>
</table>
</form>
虽然编码是将新图像添加到服务器,但是当我调整行时,mysql表似乎没有使用新图像进行更新 - 实际上没有进行任何更改:
mysql_query("update `furnishings` set `photo`='$pic' WHERE id='$id'") ;
为:
mysql_query("update `furnishings` set `photo`='$pic' WHERE id='8'") ;
它的工作方式虽然如此,假设问题在于这部分代码,但不确定如何纠正代码以正确地将$ id拉入php。
最后,当脚本运行时,我试图在用户单击“添加”按钮后重新加载页面“editfurnimage.php?id = $ id” - 此时返回的页面是“editfurnimage.php”这显然不会显示表格中的任何数据。
任何帮助都非常感激 - 并且总是随意撕开我的编码 - 仍在学习!!
由于 JD
答案 0 :(得分:0)
尝试删除$ id周围的单引号。 如果你的数据库中的id字段是int,那么不应该在它周围使用引号。
编辑:错过了这一个 - 从哪里发送$ _GET ['id'],因为你的表单肯定没有在$ _GET范围内发送任何id?尝试将名称为“id”的输入及其值添加到表单中。另外,在你的php文件中使用$ _POST,而不是$ _GET。在你的php中,替换:
$id=$_GET['id'];
使用
if(isset($_POST['id'])){
$id=$_POST['id'];
}else{
$id=$_GET['id'];
}
然后在你的html中添加:
<input type="hidden" name="id" value="<?php echo $id; ?>"/>