我扩展了一些带有分页的表格和对列进行排序的可能性。到目前为止一切正常,但我最多可以在 10 页上使用相同的代码,所以我考虑使用函数,但我不确定为每个部分使用函数是否合理(性能等)或如果我应该结合几件事,所以我需要一些建议..
目前一页的代码如下所示(每个数字都可以是一个函数):
$limit = 30;
1.
$sql = 'SELECT
COUNT(`news_id`)
FROM
`news`';
$stmt = $db->prepare($sql);
$stmt->execute();
$stmt->bind_result($count);
$stmt->fetch();
$stmt->free_result();
$stmt->close()
2.
if ($count === 0)
{
$max_pages = 1;
}
else
{
$max_pages = (int)ceil($count/$limit);
}
3.
if (isset($_GET['page']))
{
if (preg_match('/^[0-9]{1,}$/', $_GET['page'])
&& ($_GET['page'] > 1
&& $_GET['page'] <= $max_pages))
{
$current_page = (int)$_GET['page'];
$offset = ($current_page - 1) * $limit;
}
else
{
header('location: http://' .SERVERNAME. '/admin/news/');
exit;
}
}
else
{
$current_page = 1;
$offset = 0;
}
4.
$valid_sort = array('id', 'date', 'title');
if (isset($_GET['sort']))
{
if(in_array($_GET['sort'], $valid_sort))
{
$sort = $_GET['sort'];
}
else
{
header('location: http://' .SERVERNAME. '/admin/news/');
exit;
}
}
else
{
$sort = 'id';
}
5.
$valid_order = array('asc', 'desc');
if (isset($_GET['order']))
{
if(in_array($_GET['order'], $valid_order))
{
$current_order = $_GET['order'];
}
else
{
header('location: http://' .SERVERNAME. '/admin/news/');
exit;
}
}
else
{
$current_order = 'desc';
}
由于 4 和 5 几乎相同,我可以在这里使用不同的参数调用相同的函数,但我仍然不确定调用最多 5 个函数是否真的有意义..
最后我需要以下变量:$limit, $count, $max_pages, $current_page, $offset, $sort, $current_order
编辑:为了清楚起见,问题不在于函数如何工作,或者是否可以在这里使用它们。问题是,一个函数应该与我想用它做什么相关联有多复杂?例如,我可以编写一个具有 120 行和 8 个参数的函数,但我只需要调用 1 个函数/页面......或者我可以保持简短(1 个函数用于 1 个目的/变量),但我需要调用更多功能/页面..