0

データベースからの画像を表示しようとしていますが、取得できましたが、別の画像をアップロードしても同じ画像が表示されるという問題があります。

これが私のコードです:

<?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);
?> 

お願いします。助けて...

4

2 に答える 2

1

あなたの問題は、getImage.phpがクエリ文字列にidを持つ対応する画像を返さないことです。あなたのソースコードは常に最新ニュースのイメージを返しますよね?

これを置き換えてみてください:

$query = "SELECT * FROM news ORDER BY date DESC";

$query = "SELECT * FROM news WHERE id = {$_GET['id']} LIMIT 1";
于 2013-05-24T04:15:38.673 に答える
1

私は怠け者なので、ここでは id が数値であると仮定します。

getImage.php

必要な ID を持つ画像だけを取得するように getImage.php に指示する必要があります。

$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= とその数値の間の余分な一重引用符を削除しました。これにより、数値が実際にスクリプトに送信されます。

于 2013-05-24T04:17:20.147 に答える