如何限制数据库内容的显示?
问题描述:
我正在使用以下代码来显示数据库中文章的标题和正文内容。我怎样才能让文章的正文中的前200个字符出现而不是所有的字符?如何限制数据库内容的显示?
<?php
$select = mysql_query("SELECT * FROM articles ORDER BY id DESC");
while ($result = mysql_fetch_assoc($select))
{
$id = $result['id'];
$title = $result['title'];
$body = $result['body'];
echo "<h2><a name='$id'>" . $title . "</a></h2>";
echo $body . "<br />";
}
?>
任何帮助,非常感谢!
答
改变这一行:
echo $body . "<br />";
向该:
echo (strlen($body) > 200) ? substr($body,0,200) : $body;
echo "<br />";
即利用comparison operator(又名三元运算符),以输出仅前200个字符,如果$body
的长度超过200个字符,否则全身。
可用于标记截断文本块的常用技术是在截断文本块(三个句点或HTML实体…
)的末尾添加省略号。这就是为什么我通常在这里使用比较运算符,而不是仅仅执行substr($str,0,200)
,这两种情况都适用,但不能让你单独修改它们。
答
可以用PHP在查询中做到这一点的其他人所说的,或直接以及(如果你并不需要所有的数据在页面上):
$select = mysql_query("SELECT id, title, SUBSTR(body, 0, 200) FROM articles ORDER BY id DESC"
答
我创建一个称为限制的函数。也许它也会对你有用。
function limit($string, $limit) {
if (strlen($string) < $limit) {
$result = substr($string, 0, $limit);
}
else
$result = substr($string, 0, $limit) . '...';
return $result;
}
echo limit('Testing my function', 5);
//Output
Test...
不幸的是,这并没有改变任何东西,内容的整个长度(超过200个字符)仍然出现。 – Daemon 2010-01-30 06:49:38
我是个笨蛋,你的解决方案确实有效。我打开了两页,我正在编辑错误的一页。大声笑 非常感谢。 – Daemon 2010-01-30 06:54:57
Np,很高兴它的工作。 – zombat 2010-01-30 06:58:27