2011-03-02 48 views
2

嘿大家。所以我想要做的是實現我的分頁更乾淨的網址。目前我通過GET傳遞變量,並重新加載相同的頁面並修改查詢。PHP:清潔分頁url(文件夾)

我希望做類似:http://designspiration.net/

自己的網頁顯示爲與相應數量的文件夾。我假設他們正在做這個動作,但我不知道如何。不是特別確定我可能會涉及什麼,或者可能涉及什麼,但我很樂意接受挑戰,請讓我知道!

這是我設置的使用$ _GET的當前測試。已經有一些在線教程幫助理解分頁的理論。

<?php 
$host = "localhost"; 
$username = "user"; 
$password = "pass"; 
$db_name = "database"; 
$directory = "/newProject"; 

mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 

$postsPerPage = 2; 
$start = $_GET['start']; 
$totalRecords = mysql_num_rows(mysql_query("SELECT * FROM posts")); 

if (!$start) 
    $start = 0; 

$result = mysql_query("SELECT * FROM posts ORDER BY id DESC LIMIT $start, $postsPerPage"); 

while ($post = mysql_fetch_assoc($result)){ 
    echo "<span>" ."Title: " .$post['title'] ."</span><br />\n"; 
    echo "<span>" ."Author: " .$post['author'] ."</span><br />\n"; 
    echo "<span>" ."Description: " .$post['description'] ."</span><br />\n"; 
    echo "<a href='full_post.php?id=" .$post['id'] ."'>\n" ."<img src='" .$directory .$post['thumbUrl'] ."' /></a>" ."<br />\n"; 
    echo "<span>" ."Type: " .$post['type'] ."</span><br />\n"; 
    echo "<span>" ."Tags: " .$post['tags'] ."</span><br />\n"; 
    echo "<span>" ."Submitted: " .$post['date'] ."</span><br />\n"; 
    echo "<span>" ."ID: " .$post['id'] ."</span><br /><br /><br />\n"; 
} 

$prev = $start - $postsPerPage; 
$next = $start + $postsPerPage; 

//previous button 
if (!($start<=0)) 
    echo "<a href='index.php?start=$prev'>Prev</a> "; 

//page numbers 
$pageNumbers = 1; 

for($x=0;$x<$totalRecords;$x=$x+$postsPerPage){ 
    if ($start!=$x) 
    echo "<a href='index.php?start=$x'> $pageNumbers</a> "; 
    else 
    echo "<a href='index.php?start=$x'><b> $pageNumbers</b></a> "; 
    $pageNumbers++;  
} 

//next button 
if(!($start>=$totalRecords-$postsPerPage)) 
    echo "<a href='index.php?start=$next'>Next</a>"; 

?> 

我的假設:我將POST'ing變量爲我的分頁/的mysql_query到一個新的文件夾,其中的index.php我即時創建基於我的網頁數..我也看了成。 htaccess的重寫規則,可以修改的網址,但我是一個初學者與PHP,試圖學習,這似乎是一個捷徑。

郵編,或者只是點我在正確的方向!通過搜索沒有任何運氣。

+0

正確的方向是使用Apache的mod_rewrite路由網址像/ /第1頁添加到/index.php?page=1 (或類似的東西)。我希望有其他人出席,他們可以給你一個完整的例子,說明必要的重寫規則。 – pableu 2011-03-02 10:54:57

回答

1

嘿,你在尋找什麼是路由技術,你可以簡單地看到一些框架是如何做到這一點,並實現它自己,或者只是使用的框架。 的基本前提是重新路由所有TRAFIC到該文件中解析URI和獨立的,你想要什麼,然後送到相應的特定代碼文件(一般的index.php)。

重新路由請求的URL是通過Apache國防部重寫做,然後解析是由你。

請參閱this文檔以查看zend如何執行此操作。

好運

編輯以this鏈接,這似乎是更具可讀性

+0

謝謝!我會看看這個。 – Michael 2011-03-02 10:58:05

+0

好運!這是非常標準的做法,所以你應該能夠輕鬆地做到這一點。 – cromestant 2011-03-02 12:05:46