|
查看: 995|回复: 12
|
PHP高手请帮帮忙... 2
[复制链接]
|
|
|
// how many rows to show per page
$rowsPerPage = 10;
// by default we show first page
$pageNum = 1;
// if $_GET['page'] defined, use it as page number
if(isset($_GET['page']))
{
$pageNum = $_GET['page'];
}
// counting the offset
$offset = ($pageNum - 1) * $rowsPerPage;
$query = "SELECT name FROM student LIMIT $offset, $rowsPerPage";
$result = mysql_query($query) or die('Error, query failed');
这是个普通的paging 开头 script.. 小弟不明白的是 $offset的出现
可以教教吗? |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 24-9-2008 09:19 PM
|
显示全部楼层
// how many pages we have when using paging?
$maxPage = ceil($numrows/$rowsPerPage);
// print the link to access each page
$self = $_SERVER['PHP_SELF'];
$nav = '';
for($page = 1; $page <= $maxPage; $page++)
{
if ($page == $pageNum)
{
$nav .= " $page "; // no need to create a link to current page
}
else
{
$nav .= " <a href=\"$self?page=$page\">$page</a> ";
}
}
以上的script,出来的 $nav output 是 1 2 3 4 5 6 7 8 9 10 pages,可是如果我想把 output 出来的 $nav limit 去 5 个而已应该怎样?
就好像 forum 里或google 的 paging system,show 出来的只有10个页数而

[ 本帖最后由 crliuh4 于 24-9-2008 09:25 PM 编辑 ] |
|
|
|
|
|
|
|
|
|
|
发表于 25-9-2008 07:45 PM
|
显示全部楼层
原帖由 crliuh4 于 24-9-2008 08:44 PM 发表
// how many rows to show per page
$rowsPerPage = 10;
// by default we show first page
$pageNum = 1;
// if $_GET['page'] defined, use it as page number
if(isset($_GET['page']))
{
$pageNum = ...
去看看 MySQL 對 LIMIT 的應用, 自然你就知道為甚麼要 $offset 變數的出現
原帖由 crliuh4 于 24-9-2008 09:19 PM 发表
// how many pages we have when using paging?
$maxPage = ceil($numrows/$rowsPerPage);
// print the link to access each page
$self = $_SERVER['PHP_SELF'];
$nav = '';
for($page = 1; $page
for($page = 1; $page <= $maxPage; $page++)
控制 for 迴圈中的初始值和條件值即可, PHP 中 for 的教學可以從 w3schools 獲得 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 25-9-2008 11:50 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 26-9-2008 12:38 AM
|
显示全部楼层
看你的写法,我有个疑问,
你怎样知到你查询的资料有多少列来做分页? |
|
|
|
|
|
|
|
|
|
|
发表于 26-9-2008 09:39 AM
|
显示全部楼层
原帖由 crliuh4 于 25-9-2008 11:50 PM 发表
谢谢你的回复
在jbtalks也看到你回我
LIMIT 我知道是LIMIT 显示出来的DATA,可是
// how many rows to show per page
$rowsPerPage = 2;
// by default we show fi ...
你的開始頁數會從 -1 開始是因為你的 scenario 2 或 3 改變了 $beginPage, 去查查看你哪個值錯誤了. |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 26-9-2008 06:02 PM
|
显示全部楼层
回复 5# blue333 的帖子
$query = "SELECT name FROM student LIMIT $offset, $rowsPerPage";
你是说这个吗? |
|
|
|
|
|
|
|
|
|
|
发表于 26-9-2008 08:46 PM
|
显示全部楼层
原帖由 crliuh4 于 26-9-2008 06:02 PM 发表 
$query = "SELECT name FROM student LIMIT $offset, $rowsPerPage";
你是说这个吗?
如果你要每页显示 10 列资料
如果符合的资料列有 50 列,你 limit 了 10 列,
最终你得到 10 列,那如果要做分页,怎样分法呢? |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 27-9-2008 02:05 AM
|
显示全部楼层
for($page = 1; $page <= $maxPage; $page++)
{
if ($page == $pageNum)
{
$nav .= " $page "; // no need to create a link to current page
}
else
{
$nav .= " <a href=\"$self?page=$page\">$page</a> ";
}
}
这个帮我分page 的页数出来
有了它 就可以显示 1 2 3 4 5 6 7 8。。。 |
|
|
|
|
|
|
|
|
|
|
发表于 27-9-2008 03:57 AM
|
显示全部楼层
$maxPage = ceil($numrows/$rowsPerPage);
我的意思是那个 $numrows 的数值你是从那里得来? |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 27-9-2008 02:46 PM
|
显示全部楼层
原帖由 blue333 于 27-9-2008 03:57 AM 发表 
$maxPage = ceil($numrows/$rowsPerPage);
我的意思是那个 $numrows 的数值你是从那里得来?
// how many rows we have in database
$query = "SELECT COUNT(id) AS numrows FROM student";
$result = mysql_query($query) or die('Error, query failed');
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];
这个吗? |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 28-9-2008 11:58 PM
|
显示全部楼层
SESSION 问题
请问下,我用registered id login了,可是我怎样知道我是以这个id login?
例如我想显示出我 login 的 id
$sql = " SELECT nameID FROM user ";
$result1 = mysql_query($sql) or die('Error, no user detected.' . mysql_error());
$user = mysql_fetch_assoc($result1);
echo $user['nameID'];
output ===> random user name 而不是我login 的id
请问下$sql = " SELECT nameID FROM user "; 这里要改什么东西?还是别的地方要加东西? |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 29-9-2008 02:01 AM
|
显示全部楼层
搞定了 |
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|