2017-06-02 63 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

相关问题