如何使用PHP为数据库中的每一行创建一个唯一的页面?

时间:2017-06-08 05:35:42

标签: php mysql

让我们说,我用这种形式在MySQL数据库中输入一行:

<form action="add.php" method="post">
<input type="text" name="title" />
<input type="submit"/>
</form>

现在,我想制作一个这样的网页网址:example.com/title 当有人打开它时,数据库显示该特定行。

2 个答案:

答案 0 :(得分:0)

您可以尝试这样的方法,仅使用一个文件生成“不同”页面(example.com/title.php

循环访问您的数据库以获取所有数据,同时为每个数据创建<a>

foreach ($retrieveResult as $result) {
    echo '<a href="example.com/title.php?name='.$result['title'].'">'.$result['title'].'</a>';
}

这将生成如下内容:

<a href="example.com/title.php?name=titleA">titleA</a>
<a href="example.com/title.php?name=titleB">titleB</a>
<a href="example.com/title.php?name=titleC">titleC</a>
<a href="example.com/title.php?name=titleD">titleD</a>

要在网址中获取name的值,请在$_GET

中使用title.php
$title = "";
if(isset($_GET['name')){
    $title = $_GET['name'];
}

现在将$title放入SELECT查询中以检索标题为$title的所有数据,然后将其显示在title.php中。有了它,您将拥有一个动态页面。

答案 1 :(得分:0)

我不确定你想要尝试什么,但它对你有帮助

按照步骤

第1步: 如果您熟悉. htaccess那么它很好,否则在您的项目根文件夹中创建一个名为.htaccess的文件,其中htaccess是它的扩展名而不是名称:

然后将其放入.htaccess文件中:

RewriteEngine On    # Turn on the rewriting engine
RewriteRule    ^home/([0-9A-Za-z]+)/?$    home.php?title=$1    [NC,L]    # Handle product requests

第2步:在存在home.php文件的根文件夹中创建文件.htaccess。现在尝试使用全局变量$_GET从URL获取标题,然后使用它从数据库中获取数据:

$title = $_GET['title'] // use $title to fetch data from database matching with it

现在通过网址home/title,您将能够显示数据库中有关该标题的数据:

注意: .htaccess文件是APACHE服务器配置文件。