我正在尝试显示来自数据库的图像,但我能够得到它,但问题是,即使我上传了不同的图像,它也会显示相同的图像。
这是我的代码:
<?php
$con = mysql_connect('localhost','root','')
or die(mysql_error());
mysql_select_db ("dbname");
$query = "SELECT * FROM news ORDER BY date DESC";
$result = mysql_query($query);
echo "<table align='center'>";
while($row = mysql_fetch_assoc($result))
{
echo "<tr>";
echo "<td>";
echo "<img src='getImage.php?id='".$row['id']."' height='230px' width='300px'> <br /><br />";
//Some codes here...
echo "</table>";
mysql_close($con);
?>
getImage.php
<?php
$con = mysql_connect('localhost','root','')
or die(mysql_error());
mysql_select_db ("dbname");
$query = "SELECT * FROM news ORDER BY date DESC";
$result = mysql_query($query);
header("Content-type: image/png");
while($row = mysql_fetch_assoc($result))
{
echo $row['image'];
}
mysql_close($con);
?>
PLS。帮助我...
答案 0 :(得分:1)
您的问题是 getImage.php 未在查询字符串中返回 id 的相应图像。你的源代码总是会返回最新消息的图片,对吗?
尝试替换它:
$query = "SELECT * FROM news ORDER BY date DESC";
到
$query = "SELECT * FROM news WHERE id = {$_GET['id']} LIMIT 1";
答案 1 :(得分:1)
因为我很懒,所以我假设id在这里是数字。
在getImage.php
:
我们需要告诉getImage.php获取具有我们想要的ID的图像。
$id = intval($_GET['id']);
//Forces $id to be numeric. You wouldn't have to worry about doing this if
//you used prepared statements. Like those in John Conde's links.
$query = "SELECT * FROM news WHERE `id`=$id";
就像现在一样,getImage.php实际上正在输出你的所有图像。但是,您只能看到具有最新日期的那个。这是因为由于ORDER BY
子句,它是由脚本检索的第一个。
此外,在您的显示循环中,更改此:
echo "<img src='getImage.php?id='".$row['id']."' height='230px' width='300px'> <br /><br />";
到此:
echo "<img src='getImage.php?id=".$row['id']."' height='230px' width='300px'> <br /><br />";
删除了id =和它的数字之间的额外单引号,这样这个数字实际上会发送到你的脚本。