我已经在我丈夫的网站上工作了一段时间。我正在重新设计该网站,我想让它更具有前瞻性。目前,他的博客帖子只是在他的页面上连续显示(有一些分页来分解),这意味着如果有人想要将帖子添加到他们的收藏夹中,那么随着更多帖子的添加,它将无法工作。所以,我想创建一些简短的帖子,然后链接到完整的帖子。
我的问题是,如何做到这一点?我搜索了许多试图找到答案的网站,但我能找到的是如何设置自己的数据库(我已经拥有)以及如何创建登录(我不需要) ,并按照我已有的方式回复帖子。
基本上,我想要从帖子中摘录(前几行或其他内容),然后阅读完整文章的链接。我不确定如何在不为每个帖子制作单独的html页面的情况下这样做,而不是以某种方式将它们从我的数据库中删除。即,我不知道如何自动生成显示完整帖子所需的URL(和代码)。
如果我不是以最好的方式问这个问题,我很抱歉。答案可能就在那里,我似乎无法寻找合适的东西。 :(
编辑: 该网站是SpidersInAJar.com 数据库是mySql,使用ID,Title,Body和Date设置非常简单。
答案 0 :(得分:1)
假设您的博客帖子位于数据库中名为blogpost
的表中。我还假设您目前正在执行SELECT ID, Title, Body, Date FROM blogpost ORDER BY ID DESC
之类的操作,然后循环查看结果,在其周围插入
并将其调用完毕。
进一步假设,您想要的是使用一个片段列表加载相同的页面,每个片段都有一个链接,当按下该链接时将重新加载页面并仅显示博客帖子。
要获取您的代码段,您需要稍微更改一下SQL:
SELECT ID, Title, CONCAT(Substring(Body FROM 1 for 300), "...") as Body, Date FROM blogpost
例如,这将为每个博客文章提供前300个字符。
在您的PHP中,您循环显示结果并将<p></p>
包裹在您需要添加新链接标记的所有内容之类的内容...类似
echo '<a href="index.php?blogpost=" & <This blogposts ID> & '">read more</a>'
这会将博客帖子的ID作为变量发送回index.php页面。因此,浏览器将刷新,您将能够在您的php页面顶部blogPost=$_GET['blogpost']
并抓取已发送的内容并对其进行操作。显然这会使您的代码变得更复杂,因为现在您必须确定是否发送了变量并显示所有片段(如果blogPost变量为null)或只显示博客帖子(仅从表中选择该ID并且显示它)。
这也通过SQL注入引入了巨大的安全风险。现在,任何人都可以通过操作类似于http://spidersinajar.com/index.php?id=1 or a=a;DROP TABLE blogpost;
的URL来向您的数据库发送任意SQL。您希望了解如何在将sql语句发送到数据库之前正确准备sql语句,以避免心痛。
显然需要编写更多的代码才能使其工作,但这是高级别的,应该给你一些指导。