我想从表pages
articles
中获取页面范围
|article_id|pages|
1 41-47
2 60-61
输出用于文章ID 1:
<fpage>41</fpage>
<lpage>47</lpage>
这是我的代码:
$page = mysqli_query($con,"SELECT pages FROM articles WHERE article_id='1'") or die(mysql_error());
while($page2=mysqli_fetch_array($page))
{
result = preg_replace_callback('/(\d+)-(\d+)/', function($m)
{
return implode(',', range($m[1], $m[2]));
}, $page2);
$page3 = explode(',', $result['pages']);
$xml .= '<fpage>'.$page3[0].'</fpage>';
$xml .= '<lpage>'.$page3[6].'</lpage>';
}
我设法使用array [6]
获取第1条的最后一页。那么如何处理可能有不同范围的文章呢?而且,我想计算页面范围,
对于第1条,总页面范围(41-47)是6,但我不知道该怎么做。非常感谢您的帮助。谢谢:))
答案 0 :(得分:3)
使用SUBSTRING_INDEX()函数拆分字符串:
试试这个:
SELECT SUBSTRING_INDEX(pages, '-', 1) AS fpage,
SUBSTRING_INDEX(pages, '-', -1) AS lpage,
(SUBSTRING_INDEX(pages, '-', -1) - SUBSTRING_INDEX(pages, '-', 1)) AS pageRange
FROM articles
WHERE article_id = '1';