在php中,什么函数可以只显示长度大于50个字符的字符串,将其截断为不超过130个字符,并将其限制为一个结果?
例如,假设我的结果集中有30行,但我只想显示具有这些参数的最新行。如果最新的行有25个字符,则不应显示。它应该只显示字符串长度为50个或更多字符的最新字符串。
发布于 2010-11-30 12:32:10
使用SQL查询。为了找到您想要的最新值,可以使用auto_increment主键(我称其为id)或创建行时的日期/时间(比如time time_created)。
所以我假设表是: id (int),stringVal (string,char(),varchar()等等)
SELECT MAX(id), SUBSTRING(stringVal, 1, 130)
FROM yourTable
WHERE LENGTH(stringVal) > 30如果有必要,请用时间字段替换id。如果没有它们中的一个,你将很难找到最新的,但你总是可以任意选择一行。
--Edit--在PHP中使用mysql函数运行上述查询和获取所需输出的示例
$sql = "SELECT MAX(id), SUBSTRING(stringVal, 1, 130) FROM yourTable WHERE LENGTH(stringVal) > 30";
$r = mysql_query($sql, $conn); //im hoping $conn or something like it is already set up
$row = mysql_fetch_assoc($r);
$desiredString = $row['stringVal'];发布于 2010-11-30 12:03:41
像这样的事情应该能做的就是确保你先抓取你的数据,按照最新的条目排序。break语句将确保在找到符合条件的第一个结果后终止循环...
foreach($array_returned_from_query as $row)
{
if(strlen($row) > 50)
{
echo substr($row, 0, 130);
break;
}
}https://stackoverflow.com/questions/4310375
复制相似问题