2012-10-28 2 views
0

페이지 매김에 문제가 있습니다. 페이지 매김 쿼리의 PHP 코드는 다음과 같습니다페이지 매김에 대한 제안

$ <? if (isset($_GET["page"])) { 

    $Page = preg_replace("/[^0-9]/","", $_GET["page"]); 
} else { 
    $Page = 0; 
} 
$limit  = 10; 
$StartFrom = $limit * $Page; 
$TotalFiles = mysql_num_rows(mysql_query("SELECT * FROM linkuri WHERE `categorie` = 'Afaceri' AND status = 1")); 
$TotalPages = floor($TotalFiles/$limit); ?> 

그리고 코드를 표시 :

문제는 내가 같이 디스플레이를 만들기 위해 노력하고있다
$i = 0; while ($TotalPages >= $i) { echo '<a class="active imgf" style="opacity: 1;margin-bottom:3px; margin-top:3px;" href="afaceri.php?page='.$i.'">'.($i+1).'</a>';$i++;} 

: PAGES: "BACK" 1 2 3 4 5 "NEXT"

+0

우수한 비디오가 있습니다. 이 작업을 수행하는 방법에 대한 자습서 : youtube.com/phpapplied – Norse

답변

2

먼저 내가 싶습니다 귀하의 질문에 대한 개선을 제안하십시오. 계산에 총 행은 사용 후 이것은 매우 기본적인 예를

입니다 :

$totalPost = 50; //Dummy total post 
$limit = 10; 

$pages = $totalPost/$limit; //Giving 5 

//Now we know there are five pages 
for($i=1; $i<=$pages; $i++) { 
    echo $i; // Better echo something like <a href="link">$i</a> 
} 

추신 : 다음

SELECT count(*) as `totalpost` FROM linkuri WHERE `categorie` = 'Afaceri' AND status = 1 

, 당신은 이런 일을하여 해당 페이지 매김을 만들 수 있습니다 페이지 매김 효과를 만드는 방법에 대해 자세히 알아 보려면이 자습서를 확인하십시오.

How to paginate with PHP?

0

그리고 당신은 같은 조건이 긴 쿼리를 실행하지 않으려면,이 테스트 고려 :

SELECT SQL_CALC_FOUND_ROWS, * FROM foo WHERE bar ORDER BY ouch 

SELECT FOUND_ROWS() AS found 

첫 번째 쿼리가 당신을 제공 한 후 후를 귀하의 조건과 한도가있는 결과, 두 번째는 제한없이 모든 기록 수를 제공합니다.

관련 문제