使用一个查询和一个php文件显示来自两个不同表的图像

时间:2013-09-05 15:45:56

标签: php mysql sql

我在loadimage.php文件中的一个查询中有两个select语句,并在两个不同的过程中显示它,一个图像用于事件,一个图像用于新闻。 我的代码就像这样

loadimage.php

<?php
mysql_connect("localhost","root");
mysql_select_db("pcnl");
$q="select * from tbl_event where event_ID = ".$_GET['id'];
$rec=mysql_fetch_array(mysql_query($q));
$image=$rec['event_img'];
header('Content-Length: '.strlen($image));
header("Content-type: image/".$rec['event_imgExt']);
echo $image;

$sqlmain="select * from tbl_news where news_ID = ".$_GET['mainid'];
$mainimg=mysql_fetch_array(mysql_query($sqlmain));
$mainimage=$mainimg['news_img'];
header('Content-Length: '.strlen($mainimage));
header("Content-type: image/".$mainimg['news_ext']);
echo $mainimage;
?>

event.php

<img src="loadimage.php?id=<?php echo $events[id];?>" width="700px" height="350px">

news.php

<img src="loadimage.php?mainid=<?php echo $main['news_ID'];?>" width="300px" height="350px">

1 个答案:

答案 0 :(得分:0)

你没有问任何问题,说你期望发生什么,说发生了什么,告诉我们你在运行时应该记录的错误。

您无法返回多个资源以响应单个HTTP请求。 (这不是严格意义上的,但是当你仍然掌握算术的基础知识时,就像谈论弦理论一样)。

BTW您当前的脚本容易受到SQL注入的攻击。<​​/ p>

试试这个:

<?php
mysql_connect("localhost","root");
mysql_select_db("pcnl");
$t='event'==$_GET['itype'] ? 'tbl_event' : 'tbl_news';

$q="select * from $t where event_ID = ".(integer)$_GET['id'];
if ($rec=mysql_fetch_array(mysql_query($q))) {
   $image=$rec['event_img'];
   header('Content-Length: '.strlen($image));
   header("Content-type: image/".$rec['event_imgExt']);
   echo $image;
} else {
   header('HTTP/1.0 404 Not Found', 404);
}

和...

<img src="loadimage.php?itype=event&id=<?php echo $events['id'];?>"...

<img src="loadimage.php?itype=main&id=<?php echo $main['news_ID'];?>"...

或者更好的是,只需要一张表来保存数据。