2017-06-02 65 views
0

我今天開始創建一個CMS供我個人使用,用於管理purpours,並且還教我自己幾件事情。用我的自定義CMS創建頁面

我在我的管理區域有一個部分,我可以創建/更新/刪除頁面或帖子,這很有用。

我的問題是如何從我存儲在我的數據庫中的信息生成頁面和URL?

比方說,我的表「posts」有幾行包含「post_title」,「post_content」,「post_slug」等。如何從我的數據庫中的這些信息生成一個頁面(因爲它顯然不是創建基於PHP文件的頁面),所以我會有http://mywebsite.com/cool-new-post-slug.php(然後我可以通過ID等獲得內容)?

如果有人能指出我的方向會很棒。感謝您的回答。

+0

我看到有一次系統在POST行(它有一個URL列)中生成一個URL,當你嘗試輸入一些不存在的東西時,你會嘗試在列中找到該URL,如果匹配,它會給出所有信息關於那個POST,你應該渲染它。請記住,如果你遵循這一點,當你更新你的POST時,如果標題被編輯了,你必須重新制作URL。 – matiaslauriti

+0

我認爲在您的張貼表中使用標題欄更容易,並且使用標題作爲網址,而不是在每次創建帖子時創建新文件。 – Josiah

+0

不要以粗魯的方式表示這種情況,但如果您構建了程序的CRUD部分,則應該知道如何檢索數據。閱讀使用GET變量。你會想要做一些像mywebsite.com/page.php?slug=cool-new-post。或者進一步瞭解並瞭解mod_rewrite,然後您可以執行mywebsite.com/cool-new-post/ – WheatBeak

回答

1

如果我正確理解您的問題,您需要首先從數據庫中檢索所有slug,然後使用它們來構建您的url。

假設你正在使用的mysqli:

$query = "SELECT post_slug,post_title FROM posts"; 
$posts = mysqli_query($con,$query); 
while($post = mysqli_fetch_assoc($posts)){ 

    echo "<a href=\"single.php?slug=" . $post["post_slug"] . "\">"; 
    echo $post["post_title"]; 
    echo "</a><br/>"; 

} 

mysqli_free_result($posts); 

然後在single.php你會使用GET變量post_slug檢索您的數據。

在.htaccess文件

你可以使用mod_rewrite獲得漂亮的URL如下:

RewriteEngine On 
RewriteBase/
RewriteRule posts/(.+?)/?$ single.php?slug=$1 

這將顯示網址http://mywebsite.com/posts/cool-new-post/您的瀏覽器,但它真的會被訪問是single.php?slug=cool-new-post

+0

非常感謝您的回答。我意識到我所要求的並不是很有意義..我現在真正想要做的是將我的URL http://localhost/cms/single.php?id = 1更改爲更令人愉快的東西。所以我正在通過.htaccess查看漂亮的URL,但是在它自己的頁面上有每個帖子的所有內容:)謝謝 – Notorious

+0

然後,您肯定需要查看mod_rewrite。你仍然可以只有single.php來處理和顯示每個頁面,但給每個頁面都有自己漂亮的URL。 – WheatBeak

+1

我編輯了我的答案,以添加您所需的內容。 – WheatBeak

相關問題