求救!!PHP怎么把数据库的多个图片显示出来 如题。我已经把图片存进数据库里了。。现在我怎么把这些图片显示到页面中。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 [id] 类型 int [photo] 类型 longblob[filetype] 类型 varchar 就这3个了。图片我存在photo里 主程序//连接数据库的代码,省略//假定为 mysql$起点 = 你指定的图片开始偏移;$rs = mysql_query("select * from 表 limit $起点, 10");while($row = mysql_assoc($rs)) { echo "<img src='showphoto.php?id=$id'>}showphoto.php//连接数据库的代码,省略//假定为 mysql$rs = mysql_query("select * from 表 where id=$_GET[id]");$row = mysql_assoc($rs);header("Content-type: image/$row[filetype]");echo $row['photo']; 你不是要分页吗? limit 0,10 //从第一条开始取。取10条。 汗。。按照xuzuning大师给的做了。。显示了10个X。。图片没出来 可能是showphoto.php页面你没做好吧$row = mysql_assoc($rs); 实际是 $row = mysql_fetch_assoc($rs); 首先检查路径,再者可能是BOM头引起的。一步步调试吧,注释掉header("Content-type: image/$row[filetype]"); 看看报什么错误没有。 对了,如果你php版本是5.3以后,还要小心notice级别的错误 $row['filetype'].读取图片就不能有别的输出,包括php的报错。 单独执行 showphoto.php?id=1 得到什么? $id=$_GET['id']; $str="SELECT photo FROM images limit 0,8"; $result=mysql_query($str); $row=mysql_fetch_object($result); echo $row->photo; 都是。。我用这个代码只能出一张图。。 字段 filetype 中保存的是什么?贴出几个看看 都是 image/pjpeg 我上传的都是这个类型的 header("Content-type: image/$row[filetype]");改为header("Content-type: $row[filetype]");注释掉也可以另外 photo 中的数据是如何插入的,也请告知 通过页面上传存进去的..代码是这个<?php $db=MySQL_connect("localhost","root","Myangel"); MySQL_select_db("tu"); if ( "确定"==$_REQUEST[ 'submit']){ if ($_FILES[ 'photo'][ 'size']!=0){ $data = addslashes(fread(fopen($_FILES[ 'photo'][ 'tmp_name'],"r"), filesize($_FILES['photo']['tmp_name']))); $sql= "insert into images set photo='$data',filetype=\" ".$_FILES['photo']['type']."\" "; } mysql_query($sql); $err=mysql_error(); if ($err){ printf("出错"); }else{ printf("成功,<a href=show.php?id=".mysql_insert_id()."> 显示 </a>"); } }else{ ?> <form name= "form1" method= "post" enctype= "multipart/form-data"> <input type= "hidden" name= "MAX_FILE_SIZE" value= "100000000"> <input type= "file" name= "photo" size= "40"> <input type= "submit" name= "submit" value= "确定"> </form> <?php } ?> 如果是 window 环境,那么图片数据已经损坏了fopen($_FILES[ 'photo'][ 'tmp_name'],"r")要写作fopen($_FILES[ 'photo'][ 'tmp_name'],"rb")写成这样就安全了$data = addslashes(file_get_contents($_FILES[ 'photo'][ 'tmp_name'])); 我用NAVICAT进去查看图片还是在的。。而且用别的方法能显示出来。。但是只能显示一张 求高手解答php分析ip段的问题 php实现新网api接口 高手指教:关于php+mysql的操作 如何将这种米萨市转成汉字? 用JS 模拟的Smarty 大家来看看 ^_^ 遍历数组 PHP关闭浏览器触发链接代码 大家是否碰到过要执行远程文件的操作? ~~如何向文本文件中特定位置写入?~~ 我们讨论一下 每个QQ有很多不同好友,数据库如何设计会更方便? 求助关于session中的值 s 和i代表什么意思? 读取文件问题
[photo] 类型 longblob
[filetype] 类型 varchar 就这3个了。图片我存在photo里
//假定为 mysql$起点 = 你指定的图片开始偏移;
$rs = mysql_query("select * from 表 limit $起点, 10");
while($row = mysql_assoc($rs)) {
echo "<img src='showphoto.php?id=$id'>
}
showphoto.php
//连接数据库的代码,省略
//假定为 mysql$rs = mysql_query("select * from 表 where id=$_GET[id]");
$row = mysql_assoc($rs);
header("Content-type: image/$row[filetype]");
echo $row['photo'];
$row = mysql_assoc($rs); 实际是 $row = mysql_fetch_assoc($rs);
一步步调试吧,注释掉header("Content-type: image/$row[filetype]"); 看看报什么错误没有。
读取图片就不能有别的输出,包括php的报错。
$str="SELECT photo FROM images limit 0,8";
$result=mysql_query($str);
$row=mysql_fetch_object($result);
echo $row->photo;
都是。。我用这个代码只能出一张图。。
改为
header("Content-type: $row[filetype]");注释掉也可以另外 photo 中的数据是如何插入的,也请告知
<?php
$db=MySQL_connect("localhost","root","Myangel");
MySQL_select_db("tu"); if ( "确定"==$_REQUEST[ 'submit']){ if ($_FILES[ 'photo'][ 'size']!=0){
$data = addslashes(fread(fopen($_FILES[ 'photo'][ 'tmp_name'],"r"), filesize($_FILES['photo']['tmp_name'])));
$sql= "insert into images set photo='$data',filetype=\" ".$_FILES['photo']['type']."\" ";
} mysql_query($sql);
$err=mysql_error();
if ($err){
printf("出错");
}else{
printf("成功,<a href=show.php?id=".mysql_insert_id()."> 显示 </a>");
}
}else{
?>
<form name= "form1" method= "post" enctype= "multipart/form-data">
<input type= "hidden" name= "MAX_FILE_SIZE" value= "100000000">
<input type= "file" name= "photo" size= "40">
<input type= "submit" name= "submit" value= "确定">
</form>
<?php
}
?>
fopen($_FILES[ 'photo'][ 'tmp_name'],"r")
要写作
fopen($_FILES[ 'photo'][ 'tmp_name'],"rb")写成这样就安全了
$data = addslashes(file_get_contents($_FILES[ 'photo'][ 'tmp_name']));