2014-07-15 2 views
0

PHP와 MySQL을 사용하여 응용 프로그램에서 페이지 매김을위한 코드를 개발했습니다. querystring에서 물음표와 함께 페이지 번호를 전달하면 물음표 대신 해쉬가있는 페이지 번호 매개 변수를 전달하려고합니다. 다음은 물음표가있는 코드입니다. 대신 URL에 해시 기호가있는 페이지 번호 매개 변수를 전달할 때 도움이됩니다. 물음표. 도와 녀석들. URL의 해시가 포함 된 PHP의 페이지 매김

<html> 
<head> 
<title>Paging Using PHP</title> 
</head> 
<body> 
<?php 
$dbhost = 'localhost'; 
$dbuser = 'root'; 
$dbpass = ''; 
$rec_limit = 10; 

$conn = mysql_connect($dbhost, $dbuser, $dbpass); 
if(! $conn) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 
mysql_select_db('dbname'); 
/* Get total number of records */ 
$sql = "SELECT count(*) FROM tablename"; 
$retval = mysql_query($sql, $conn); 
if(! $retval) 
{ 
    die('Could not get data: ' . mysql_error()); 
} 
$row = mysql_fetch_array($retval, MYSQL_NUM); 
$rec_count = $row[0]; 

if(isset($_GET{'page'})) 
{ 
    $page = $_GET{'page'} + 1; 
    $offset = $rec_limit * $page ; 
} 
else 
{ 
    $page = 0; 
    $offset = 0; 
} 
$left_rec = $rec_count - ($page * $rec_limit); 

$sql = "SELECT col1,col2,col3 FROM tablename LIMIT $offset, $rec_limit"; 

$retval = mysql_query($sql, $conn); 
if(! $retval) 
{ 
    die('Could not get data: ' . mysql_error()); 
} 
while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) 
{ 
    echo "EMP ID :{$row['col1']} <br> ". 
     "EMP NAME : {$row['col2']} <br> ". 
     "EMP SALARY : {$row['col3']} <br> ". 
     "--------------------------------<br>"; 
} 

if($page > 0) 
{ 
    $last = $page - 2; 
    echo "<a href=\"pagination2.php?page=$last\">Last 10 Records</a> |"; 
    echo "<a href=\"pagination2.php?page=$page\">Next 10 Records</a>"; 
} 
else if($page == 0) 
{ 
    echo "<a href=\"pagination2.php?page=$page\">Next 10 Records</a>"; 
} 
else if($left_rec < $rec_limit) 
{ 
    $last = $page - 2; 
    echo "<a href=\"$_PHP_SELF?page=$last\">Last 10 Records</a>"; 
} 
mysql_close($conn); 
?> 

는 이후 서버로 전송되지 않습니다 해시에서 해시 매개 변수를

+0

확인. 나는 그것을 할 것이다 : PHP의 mysql_ API가 더 이상 사용되지 않는다는 것을 명심해라. 누구든지 데이터베이스에 제출하는 것을 절대 신뢰하지 마십시오. $ GET! – Strawberry

+0

k.sir.will은 mysqli 또는 PDO로 변경합니다. 코드 – user3840361

답변

0

아무것도 페이지 번호 매개 변수를 전달에서 저를 도와주세요. 해시를 사용해야하는 경우 Sammy.js과 같은 것을 사용하여 클라이언트 쪽에서 페이지 매김을 구현해야합니다.

두 번째 옵션으로 post 요청을 서버에 요청한 경우 in this question과 같이 해시 뒤에 부분을 숨김 필드에 넣을 수 있습니다.

마지막으로 네비게이션을 설정하는 좋은 방법은 Joomla와 같은 일부 CMS에서 사용되는 해시 대신 / (전달 슬래시)을 사용하는 것입니다. 기본적으로 somewebsite.com/index.php/MyPaginationParameter을 요청하면 여전히 somewebsite.com/index.php으로 이동하며 요청 URL에서 MyPaginationParameter 부분을 제거 할 수 있습니다.

+0

을 수정하는 데 도움을주십시오. 기사를 얻지 못했고, 코드 부분을 강조 표시하여주십시오. 어디에서 변경해야합니까? – user3840361

+0

페이지 매김 매개 변수도 슬래시로 전달할 수 있습니까? – user3840361

+0

여기에서 무엇을 묻고 있는지 확실하지 않습니다. 내 게시물에 슬래시를 사용하는 방법을 지정합니다. – neelsg

0

코드를 작성하거나 코드를 작성하지 않고 알고리즘을 설명합니다.

페이지 당 표시 할 쿼리 수를 설정합니다. 페이지 당 25 개의 쿼리를 예로들 수 있습니다.

QueriesPerPage=25; 
pageSelected=USER_INPUT; //if (NO USER_INPUT) pageSelected = 1 

So switch(pageSelected) 
case 1 //FIRST PAGE 
show (0 , QueriesPerPage); 

default: //ANY PAGE OTHER THAN 1st 
show (QueriesPerPage*(pageSelected-1) , QueriesPerPage*pageSelected); 


FuncTIOn show (START,END) 
{ 
SELECT * FROM THIS LIMIT START,END; 
} 

이 알고리즘을 적용하면 효율적인 스크립트를 만들 수 있습니다. 희망이 도움이 될 것입니다.

관련 문제