我有一个图片库,用户可以将图片从手机上传到数据库,然后调用我的图库页面。每个条目在数据库中都有ID,图像和描述。
这是导出图库的代码:
//include database connection
include 'mysqlconnect.php';
$sql="select * from images order by image desc";
$query=mysql_query($sql);
while($row=mysql_fetch_array($query))
{
$image=$row ['image'];
$description=$row ['description'];
//call all images from DB
echo '<a href="'.$image.'" title="'.$description.'" style="background-image:url('.$image.');"></a>';
}
问题是当用户使用iPhone上传照片时。因为iPhone总是将图像保存为&#34; image.jpg&#34;,每次上传时它都会覆盖图库中以前的iPhone图像。我想这是因为画廊只是要求文件名。
有没有办法根据行ID调用图像?像$image=$row['id','image'];
?
答案 0 :(得分:2)
首先,如果相同的图像名称被上传,并且你没有规定重命名它或使用一个独特的文件夹将它们用作唯一的,那么这就是问题所在。
如果您想根据ID查看照片,请在查询中使用它。
即:
$sql="select * from images WHERE id='some_id' order by image desc";
“有没有办法根据行ID调用图像?像$ image = $ row ['id','image'];?”
不,这是无效的语法:
$image=$row['id','image'];
您需要使用两个单独的$row(s)
。
即:
$id = $row['id'];
$image=$row['image'];
旁注:您甚至可能不需要使用WHERE
子句,只需使用$row['id']
。
但是,如果您只是根据特定用户显示图像,那么是;使用WHERE
子句甚至根据会话用户名使用会话。
重命名上传的文件:
请参阅以下有关如何在上传中使用唯一名称的信息:
您还使用了已弃用的MySQL库。最好转移到mysqli_
或PDO,因为它将从未来的PHP版本中删除。
参考文献: