http://document.thinkphp.cn/manual_3_2.html#data_page
http://document.thinkphp.cn/manual_3_2.html#stat_query
/**
* 所有可投资产品
*/
public function invest_chanpin() {
$p = getValue('p', 'int');
if (!$p || $p <1) {$p = 1;}
$pageSize = getValue('pageSize', 'int');
if (!$pageSize) {
$pageSize = 10;
}
$count = M('item')->count();
$lastPage = ceil($count/$pageSize);
if ($p > $lastPage) {
$p = $lastPage;
}
$page = new Page($count, $pageSize);
$sql = <<<EOF
select b.id as pid, b.title as title, c.name as clazz,
b.guarantee as guarantee, b.min as min, b.rate as rate,
b.day as day
from item as b
left join project_class as c on b.class=c.id
limit %d,%d
EOF;
$products = M()->query(sprintf($sql, ($p-1)*$pageSize, $pageSize));
// !!数据不完整!!
foreach ($products as &$product) {
empty($product['clazz']) && $product['clazz'] = '无';
empty($product['guarantee']) && $product['guarantee'] = '无';
if (is_null($product['min'])) {
$product['min'] = 0;
}
if (is_null($product['rate'])) {
$product['rate'] = 0;
}
if (is_null($products['day'])) {
$product['day']= 0;
}
}
$this->assign('products', $products);
$this->assign('page', $page->show());
$this->assign('user', $this->loginUser);
$this->display();
}
封装I方法 过滤传入参数
function getValue($name, $type = 'str')
{
$data = array(' ', '\'', '<', '>', '"', '<', '>', '"', 'script', 'insert', 'delete', 'update', 'select', 'drop', 'exec', 'and', 'or', 'eval');
if ($type == 'array') {
$value = I($name);
foreach ($value as $key => $i) {
$value[$key] = str_ireplace($data, '', $i);
}
}
else {
$value = str_ireplace($data, '', I($name));
switch ($type) {
case 'str':
$value = strval($value);
break;
case 'int':
$value = intval($value);
break;
case 'float':
$value = floatval($value);
break;
}
}
return $value;
}
模板文件:
<style>
.pagination {
margin: 0 auto;
display: block;
}
.pagination .num, .pagination .current {
padding: .2em .4em;
display: inline-block;
border: 1px solid #ccc;
margin: 0 .1em;
}
</style>
<div class="pagination center-block">
{$page}
</div>