如何根据用户输入创建链接

时间:2014-01-08 03:11:13

标签: php mysql forms web hyperlink

这是发布帖子的用户代码。

if(islet($_POST['submit'])) {
    $name = $_POST['name'];
    $keywords = $_POST['keywords'];
    $description = $_POST['description'];
    if(islet($_GET['user_id'])) {
        $_SESSION['user_id'] = $_GET['user_id'];
    } //Then I just have a inset into statement for my database with these 4 variables.
}

我有一个用户创建帖子的网络表单。我现在想让用户能够返回专用于该帖子的页面,供他们编辑,添加等等。

2 个答案:

答案 0 :(得分:0)

以下是高级解决方案:

  1. 您需要创建一个页面,希望将post_id作为查询字符串的参数。该页面将按如下方式访问:http://yoursite.com/show-post.php?post_id=136
  2. 在PHP中,检索post_id:$_GET['post_id']
  3. 从该帖子ID中,从数据库中提取与该ID相关联的信息。像SELECT * FROM post WHERE post_id = $_GET['post_id']
  4. 之类的东西
  5. 然后使用SQL查询返回的信息显示帖子。
  6. 如果您想显示当前用户的帖子列表,请创建另一个页面http://yoursite.com/my-posts.php
  7. 从该页面,根据当前用户ID编写SQL查询:SELECT * FROM post WHERE user_id = $_SESSION['user_id'](假设您在post表中有user_id,并且用户已经过身份验证,并且他的id已存储在会话中)。< / LI>
  8. 这将获取一个帖子列表,循环浏览它们以获取其详细信息。
  9. 请注意,您应该转义查询字符串中传递的参数。有很多方法可以做到这一点,所以我不会在这里讨论它。

    编辑:

    这是您生成链接的方式:

    <?php foreach ($mysql_result as $row) { ?>
        <a href="http://yoursite.com/edit-post.php?post_id=<?= $row['post_id'] ?>">link</a>
    <?php } ?>
    

    然后,在edit-post.php中,您可以通过$postId = $_GET['post_id'];获取post_id,然后在查询中使用它来获取有关该特定帖子的所有信息。

答案 1 :(得分:0)

确保数据库中有一个唯一的ID列 - 称之为'postid',并将其设置为每个新条目的自动增量。

这样,您就可以确保为插入数据库的每个条目都有唯一的标识符。

然后,您需要检索数据库中的项目列表,包括postid,并为数据库中的每一行提供显示它的链接。

如果在网址中选择了postid,则显示该帖子的信息。如果不是,则显示一个列表:

<?

$dbh = new PDO('mysql:host=localhost;dbname=databasename;charset=utf8', 'username', 'password');

    ///No post id selected, display a list of everything
    if(!$_GET['postid']) {

    print "You're listing all the rows in the database<br/>"; 

    $query = $dbh->prepare("SELECT `postid`,`name` FROM `table` ORDER by postid ASC");
    $query->execute();
    while ($row = $query->fetch(PDO::FETCH_ASSOC)) {

      print "<a href=\"?post_id=".$row['postid']."\">".$row['name']."</a><br/>";
    }

    } else { //A post ID is selected

    $postid = $_GET['postid'];

    Print "Select from the database where postid = ".$postid;

    $query = $dbh->prepare("SELECT `postid`, `name`, `keywords`, `description` FROM `table` WHERE `postid` = '$postid' LIMIT 1");
    $query->execute();
    while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
    $name = $row['name'];
    $keywords = $row['keywords'];
    $description = $row['description'];

      print 'Displaying details for '.$name.': '.$keywords.', '.$description.' - create edit links here... <br/><br/>';
    }


    } //End post id is selected




?>