묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
PHP페이지 나누기 문제입니다..-0-
2003.04.24 15:44
움..제가 개인적으로 좀 쓰려고 이것저것 갖다 붙였는데..
가장 최근에 올린 하나의 데이터가 안나오네요..ㅠㅠ
좀 봐주세용...
=======================================================================================
<?
/* DB연결및 DB선택및 query문 */
$connection = mysql_connect("localhost","****","****");
mysql_select_db("*****", $connection);
/* 이 루틴에서 사용되는 변수값 선언 */
/* 한페이지에 출력할 글수 */
$number_per_page = 20;
/* 한블럭에 출력할 페이지수 */
$page_per_block = 10;
/* page 기본값설정 */
if(!$page) {
$page = 1;
}
?>
<?
$result = mysql_query("select count(no) from point", $connection);
/* 전체 레코드수(작성된글수)를 계산한다. */
$total_record = mysql_result($result,0,0);
/* 총레코드중에서 출력할 레코드의 범위결정 */
if(!$total_record) {
$first = 1;
$last = 0;
} else {
$first = $number_per_page*($page-1);
$last = $number_per_page*$page;
$IsNext = $total_record - $last;
if($IsNext > 0) {
$last = $last - 1;
} else {
$last = $total_record - 1;
}
}
/* 전체페이지수를 ceil()함수를 이용하여 계산해낸다. */
$total_page = ceil($total_record/$number_per_page);
$ret="select * from point order by no desc limit $page, $number_per_page";
$no=0;
if ($sort=='1')
{
$ret="select * from point where name='1'";
}
if ($sort=='2')
{
$ret="select * from point where name='2'+ '+ '";
}
$result=mysql_query($ret);
$total = mysql_affected_rows();
while($data=mysql_fetch_array($result))
{
$no=$no+1;
?>
<!-- 페이지 이동링크 출력루틴 -->
<table width=550 border=0 cellspacing=0 cellpadding=0 align="center">
<tr>
<td align=center>
<?
$total_block = ceil($total_page/$page_per_block);
$block = ceil($page/$page_per_block);
$first_page = ($block - 1)*$page_per_block;
$last_page = $block*$page_per_block;
/* 현재블럭이 마지막블럭인가를 체크 */
if($block >= $total_block) {
$last_page = $total_page;
}
/* 이전페이지블록에 대한 페이지 링크 */
if($block > 1) {
$t_page = $firstpage;
echo ("<font size=2><a href="page.php?code=pnb_persnal_point&page=$t_page" onMouseOver="status='load previous $page_per_block pages';return true;" on MouseOut="status=''">[이전 ${page_per_block}개]</a></font>");
}
/* 현재의 페이지블럭범위내에서 가페이지에 대한 링크출력 */
for($direct_page = $first_page+1; $direct_page <= $last_page; $direct_page++) {
if($page == $direct_page) {
echo("<font size=2><b>[$direct_page]</b></font>");
} else {
echo ("<font size=2><a href="page.php?code=pnb_persnal_point&page=$direct_page" onMouseOver="status='jump to page $direct_page' ;return true;" onMouseOut="status=''">[$direct_page]</a></font>");
}
}
/* 다음페이지블럭에 대한 페이지링크 */
if($block < $total_block) {
$t_page = $last_page+1;
echo("<font size=2><a href="page.php?code=pnb_persnal_point&page=$t_page" onMouseOver="status='load next $page_per_block pages' ;return true;" onMouseOut="status=''">[다음 ${page_per_block}개]</a></font>");
}
?>
=======================================================================================
어디가 문젠지 지적좀 해주세용..
가장 최근에 올린 하나의 데이터가 안나오네요..ㅠㅠ
좀 봐주세용...
=======================================================================================
<?
/* DB연결및 DB선택및 query문 */
$connection = mysql_connect("localhost","****","****");
mysql_select_db("*****", $connection);
/* 이 루틴에서 사용되는 변수값 선언 */
/* 한페이지에 출력할 글수 */
$number_per_page = 20;
/* 한블럭에 출력할 페이지수 */
$page_per_block = 10;
/* page 기본값설정 */
if(!$page) {
$page = 1;
}
?>
<?
$result = mysql_query("select count(no) from point", $connection);
/* 전체 레코드수(작성된글수)를 계산한다. */
$total_record = mysql_result($result,0,0);
/* 총레코드중에서 출력할 레코드의 범위결정 */
if(!$total_record) {
$first = 1;
$last = 0;
} else {
$first = $number_per_page*($page-1);
$last = $number_per_page*$page;
$IsNext = $total_record - $last;
if($IsNext > 0) {
$last = $last - 1;
} else {
$last = $total_record - 1;
}
}
/* 전체페이지수를 ceil()함수를 이용하여 계산해낸다. */
$total_page = ceil($total_record/$number_per_page);
$ret="select * from point order by no desc limit $page, $number_per_page";
$no=0;
if ($sort=='1')
{
$ret="select * from point where name='1'";
}
if ($sort=='2')
{
$ret="select * from point where name='2'+ '+ '";
}
$result=mysql_query($ret);
$total = mysql_affected_rows();
while($data=mysql_fetch_array($result))
{
$no=$no+1;
?>
<!-- 페이지 이동링크 출력루틴 -->
<table width=550 border=0 cellspacing=0 cellpadding=0 align="center">
<tr>
<td align=center>
<?
$total_block = ceil($total_page/$page_per_block);
$block = ceil($page/$page_per_block);
$first_page = ($block - 1)*$page_per_block;
$last_page = $block*$page_per_block;
/* 현재블럭이 마지막블럭인가를 체크 */
if($block >= $total_block) {
$last_page = $total_page;
}
/* 이전페이지블록에 대한 페이지 링크 */
if($block > 1) {
$t_page = $firstpage;
echo ("<font size=2><a href="page.php?code=pnb_persnal_point&page=$t_page" onMouseOver="status='load previous $page_per_block pages';return true;" on MouseOut="status=''">[이전 ${page_per_block}개]</a></font>");
}
/* 현재의 페이지블럭범위내에서 가페이지에 대한 링크출력 */
for($direct_page = $first_page+1; $direct_page <= $last_page; $direct_page++) {
if($page == $direct_page) {
echo("<font size=2><b>[$direct_page]</b></font>");
} else {
echo ("<font size=2><a href="page.php?code=pnb_persnal_point&page=$direct_page" onMouseOver="status='jump to page $direct_page' ;return true;" onMouseOut="status=''">[$direct_page]</a></font>");
}
}
/* 다음페이지블럭에 대한 페이지링크 */
if($block < $total_block) {
$t_page = $last_page+1;
echo("<font size=2><a href="page.php?code=pnb_persnal_point&page=$t_page" onMouseOver="status='load next $page_per_block pages' ;return true;" onMouseOut="status=''">[다음 ${page_per_block}개]</a></font>");
}
?>
=======================================================================================
어디가 문젠지 지적좀 해주세용..
입니다.
$page 변수값이 없으면 $page 를 1로 주라고 했으니
첫번째것은 빠지고 2번째것부터 나오는겁니다.
시작넘버는
($page - 1) * 뽑아올 목록수
로 하시면 됩니다.