2014-03-25 19 views
0

我知道該網址,我的博客頁面無法正常工作: www.something.com/index.php?menuid=6或只是www.something.com/?menuid=6分頁多個GET值如預期

我想補充一個GET變量(頁碼,因爲有太多發佈到一個頁面上顯示它們),以目前的網址,例如:
www.something.com/index.php?id=6&page=12www.something.com/?id=6&page=12

我應該在分頁的<a href>寫什麼,如果我不知道www.something.com和值菜單的?

我嘗試這樣做:

$pagination = "<p>"; 
$pagination.= ($page <= 1) ? "First | " : "<a href=\"{$_SERVER['REQUEST_URI']}&page=1\">First</a> | "; 
$pagination.= ($page <= 1) ? "Previous | " : "<a href=\"{$_SERVER['REQUEST_URI']}&page=".($page-1)."\">Previous</a> | "; 

for ($i=1; $i<=$pages; $i++) { 
    $pagination.= ($page == $i) ? "{$i} | " : "<a href=\"{$_SERVER['REQUEST_URI']}&page={$i}\">{$i}</a> | "; 
} 

$pagination.= ($page >= $pages) ? "Next | " : "<a href=\"{$_SERVER['REQUEST_URI']}&page=".($page+1)."\">Next</a> | "; 
$pagination.= ($page >= $pages) ? "Last" : "<a href=\"{$_SERVER['REQUEST_URI']}&page={$pages}\">Last</a>"; 
$pagination.= "</p>\n"; 

,但是當我在第二頁,然後第3頁上點擊,結果是這樣的:

index.php?menuid=6&page=2&page=3 

我的另一個問題是,該如何展示只是前兩個和下兩個頁碼like in this one

這是分頁的PHP代碼:

$query = mysql_query("SELECT * FROM posts"); 
$howmuch = 5; 
$total = mysql_num_rows($query); 
$page = (isset($_GET['page'])) ? $_GET['page'] : 1; 
$pages = ceil($total/$howmuch); 
$where = ($page-1)*$howmuch; 

$active="(SELECT s_id FROM status WHERE s_name='active')"; 
$sql = "SELECT post_id, post_title, post_content, post_date 
     FROM posts 
     WHERE post_s_id=".$active." 
     ORDER BY post_id DESC 
     LIMIT {$where}, {$howmuch}"; 
$result = mysql_query($sql); 

$output=""; 
while ($row = mysql_fetch_assoc($result)) { 
$output.="Here are the posts"; 
} 
return $output.$pagination; 

!!! UPDATE!
對不起,但我忘了提及,posts.php包含在index.php中,上面的代碼在posts.php中。
menu_id在index.php的代碼中,而不是在posts.php中,但url是相同的。

+0

而不將在$ _ SERVER [「REQUEST_URI」]每一次,你需要找到$ page = 2子串,並用下一個頁碼替換2。 –

+2

您可以使用$ _SERVER ['PHP_SELF']而不是REQUEST_URI並自己添加menuid。 – Petra

+0

您可以使用[parse_url](http://php.net/parse_url)作爲問號前的提取路徑,使用$ _GET獲取參數,使用[http_build_query](http://php.net/http_build_query)編寫url。 –

回答

0

$_SERVER['REQUEST_URI']將獲得URL中的所有內容,這就是爲什麼它將所有頁面增值加起來。

使用

$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'].'?menuid='.$_GET['menuid'].'&page='.$page 
+0

問題是,該菜單屬於te index.php,而不是posts.php – darksoul90

+0

而且您不能將它添加到像這樣的'Posts'這樣的帖子頁的href中? – CIRCLE

+0

結果是這樣的: http://localhost/xy/localhost/xy/index.php?menuid = 6&page = 2 – darksoul90

0

快捷功能,在url無論參數產生這種

function getPageUri($page) { 
    $_GET['page'] = $page; 
    foreach($_GET as $key => $value) { 
     $query_string[] = "$key=$value"; 
    } 
    return $_SERVER['PHP_SELF'] . '?' . implode('&', $query_string); 
} 
+0

太棒了!但如何使用它? – darksoul90

+0

將其添加到您的PHP的頂部,並使用$ link = getPageUri(1);對於頁面1 getPageUri(2)對於頁面2等等 – Sephedo