如何创建链接到特定帖子的URL?

时间:2016-01-24 13:11:00

标签: php mysql

我正在努力建立一个问题& Answeer类型的网站,比如Stack Overflow,但更简单。我想知道我怎么能够为用户提出的特定问题生成URL(页面)?

我是否将URL直接存储到我的数据库中?我正在使用PHP和MySQL构建它。

2 个答案:

答案 0 :(得分:0)

您需要在数据库中存储帖子标识符,并使用它来匹配URL。因此,您的帖子网址应包含标识符:http://example.org/posts/<post-identifier-here>

答案 1 :(得分:0)

您需要在问题表上创建一个唯一的密钥。

CREATE TABLE questions (
   id integer auto_increment primary key
  ,title varchar(100) not null 
  -- ...
  -- yours table fields
  -- ...
)

或者使用id键等主键来选择你的问题。

我认为网址与下一个网址非常相似:

http://www.yourdomain.com/questions.php?q=1002

当你列出你的问题链接时,请在循环php中尝试这个:

<a href="http://www.yourdomain.com/questions.php?q=<?=$question_info['id']?>"> 
 <?=$question_info['title']?> 
</a>

当您选择问题时,您需要获得一个网址参数。比如像这样的$ _GET vars:

<?php 
    $mysqli = new('server','user','pass','bd_name');

    $question_id = $_GET['q'];

    $query="SELECT * FROM questions WHERE id='$question_id'";
    //now you can launch the query to mysql
    $result = $mysqli->query($query);
    //get the rows array
    $question_info = $result->fetch_array();    
    //your implementation
    //.....
?>

此外,您还可以使用$ _POST vars使用唯一键为问题添加评论。

这是一个简单的答案,但是这个方法存在一个很大的安全问题,因为你需要清理$ _GET变量来防止SQL注入,但现在这不是问题。