php如何从数据库中读取多张图片的路径
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php如何从数据库中读取多张图片的路径相关的知识,希望对你有一定的参考价值。
数据库表如上图,我想从数据库中读取表中前两站图片的路径 a=/upfile/jijiang/....3.jpg b=/upfile/jijiang/....1.jpg
我使用如下方式获取路径
<?php
while ($rows=mysql_fetch_assoc($rs))
?>
<?php
$pic = $rows["jj_yulan"]
?>
<?php
?>
但是得到结果是:$pic="./upfile/jijiang/1374476724jijiang2.jpg" $pic="./upfile/jijiang/1374456237jijiang1.jpg" $pic="./upfile/jijiang/1374133579xinpian3.jpg"
哪位php高手指点一下啊!
$sql="select * from jijiang order by jj_id desc limit $startno,$pagesize";pagesize 的值设为三,可以通过下面的代码循环显示三张图片,但是现在需要得到三张图片的路径,我只能取出一张图片的路径
<?php
while ($rows=mysql_fetch_assoc($rs))
?>
<img alt="" src="../<?php echo $rows["jj_yulan"]?> " />
<?php
?>
$pic=array();//实例1,数组存储
$pic2='';//实例2,变量存储
while ($rows=mysql_fetch_assoc($rs))
$pic[] = $rows["jj_yulan"];//存进数组
$pic2 .= "<img alt='' src='$row[jj_yulan]' />"; //存进变量,注意 . 是连接符
//输出
print_r($pic);
echo $pic2;
?>追问
牛人啊,太感谢了!大神能不能推荐基本学习php的书啊!或是网络资源!
参考技术A估计是<?php echo $rows['"jj_yulan"];?>中缺少分号导致的,或者是这句分号解析错误对称的,可以直接写成如下试试
while($row = mysql_fetch_assoc($res))echo "<img alt=\\"\\" src=\\"$row[jj_yulan]\\" />";
参考技术B select * from jijiang order by jj_id asc limit 2 按jj_id正序取前面两张不就行了 参考技术C where file path like '%.gif' || file path like '%.jpg' || file path like '%.bmp' …… 参考技术D 什么意思?你想把不同的图片路径赋给不同的变量?是这个意思吗?追问
我想取出数据库中最近添加的三张图片的路径,然后分别赋值给a b c
追答哦,那就是PHP赋值有问题,每次循环都覆盖了。
追问是啊,那该怎么复制啊?
php 提交表单,包含textarea和多张图片
一个表单,里面有textarea,几张图片,我需要点击提交之后,把文本和图片路径保存到数据库中,然后调用的时候图片和文本对应的都显示出来。希望给出代码,谢谢!
我要强调的是:如何保存多张图片的路径到提交的这条记录中。然后显示的时候如何把上传的所有图片对应这条带有文字的记录显示出来。 就像论坛里发表话题时那样。
----------------------------------------------------------------
----------------------分割线=--------------------------
----------------------------------------------------------------
POST 方法上传
本特性可以使用户上传文本和二进制文件。用 PHP 的认证和文件操作函数,可以完全控制允许哪些人上传以及文件上传后怎样处理。
PHP 能够接受任何来自符合 RFC-1867 标准的浏览器(包括 Netscape Navigator 3 及更高版本,打了补丁的 Microsoft Internet Explorer 3 或者更高版本)上传的文件。
相关的设置: 请参阅 php.ini 的 file_uploads,upload_max_filesize,upload_tmp_dirpost_max_size 以及 max_input_time 设置选项。
请注意 PHP 也支持 PUT 方法的文件上传,Netscape Composer 和 W3C 的 Amaya 客户端使用这种方法。请参阅对 PUT 方法的支持以获取更多信息。
例 39.1. 文件上传表单
可以如下建立一个特殊的表单来支持文件上传:
<!-- The data encoding type, enctype, MUST be specified as below -->
<form enctype="multipart/form-data" action="__URL__" method="POST">
<!-- MAX_FILE_SIZE must precede the file input field -->
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<!-- Name of input element determines name in $_FILES array -->
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>
以上范例中的 __URL__ 应该被换掉,指向一个真实的 PHP 文件。
MAX_FILE_SIZE 隐藏字段(单位为字节)必须放在文件输入字段之前,其值为接收文件的最大尺寸。这是对浏览器的一个建议,PHP 也会检查此项。在浏览器端可以简单绕过此设置,因此不要指望用此特性来阻挡大文件。实际上,PHP 设置中的上传文件最大值是不会失效的。但是最好还是在表单中加上此项目,因为它可以避免用户在花时间等待上传大文件之后才发现文件过大上传失败的麻烦。
注意: 要确保文件上传表单的属性是 enctype="multipart/form-data",否则文件上传不了。
全局变量 $_FILES 自 PHP 4.1.0 起存在(在更早的版本中用 $HTTP_POST_FILES 替代)。此数组包含有所有上传的文件信息。
以上范例中 $_FILES 数组的内容如下所示。我们假设文件上传字段的名称如上例所示,为 userfile。名称可随意命名。
$_FILES['userfile']['name']
客户端机器文件的原名称。
$_FILES['userfile']['type']
文件的 MIME 类型,如果浏览器提供此信息的话。一个例子是“image/gif”。不过此 MIME 类型在 PHP 端并不检查,因此不要想当然认为有这个值。
$_FILES['userfile']['size']
已上传文件的大小,单位为字节。
$_FILES['userfile']['tmp_name']
文件被上传后在服务端储存的临时文件名。
$_FILES['userfile']['error']
和该文件上传相关的错误代码。此项目是在 PHP 4.2.0 版本中增加的。
文件被上传后,默认地会被储存到服务端的默认临时目录中,除非 php.ini 中的 upload_tmp_dir 设置为其它的路径。服务端的默认临时目录可以通过更改 PHP 运行环境的环境变量 TMPDIR 来重新设置,但是在 PHP 脚本内部通过运行 putenv() 函数来设置是不起作用的。该环境变量也可以用来确认其它的操作也是在上传的文件上进行的。
例 39.2. 使文件上传生效
请查阅函数 is_uploaded_file() 和 move_uploaded_file() 以获取进一步的信息。以下范例处理由表单提供的文件上传。
<?php
// In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
// of $_FILES.
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
echo "File is valid, and was successfully uploaded.\n";
else
echo "Possible file upload attack!\n";
echo 'Here is some more debugging info:';
print_r($_FILES);
print "</pre>";
?>
接受上传文件的 PHP 脚本为了决定接下来要对该文件进行哪些操作,应该实现任何逻辑上必要的检查。例如可以用 $_FILES['userfile']['size'] 变量来排除过大或过小的文件,也可以通过 $_FILES['userfile']['type'] 变量来排除文件类型和某种标准不相符合的文件,但只把这个当作一系列检查中的第一步,因为此值完全由客户端控制而在 PHP 端并不检查。自 PHP 4.2.0 起,还可以通过 $_FILES['userfile']['error'] 变量来根据不同的错误代码来计划下一步如何处理。不管怎样,要么将该文件从临时目录中删除,要么将其移动到其它的地方。
如果表单中没有选择上传的文件,则 PHP 变量 $_FILES['userfile']['size'] 的值将为 0,$_FILES['userfile']['tmp_name'] 将为空。
如果该文件没有被移动到其它地方也没有被改名,则该文件将在表单请求结束时被删除。
例 39.3. 上传一组文件
PHP 的 HTML 数组特性甚至支持文件类型。
<form action="" method="post" enctype="multipart/form-data">
<p>Pictures:
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="submit" value="Send" />
</p>
</form>
<?php
foreach ($_FILES["pictures"]["error"] as $key => $error)
if ($error == UPLOAD_ERR_OK)
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
$name = $_FILES["pictures"]["name"][$key];
move_uploaded_file($tmp_name, "data/$name");
?> 参考技术A <?php
// In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
// of $_FILES.
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
echo "File is valid, and was successfully uploaded.\n";
else
echo "Possible file upload attack!\n";
echo 'Here is some more debugging info:';
print_r($_FILES);
print "</pre>";
?>
以上是关于php如何从数据库中读取多张图片的路径的主要内容,如果未能解决你的问题,请参考以下文章