根据从数据库检索的数据并使用get()创建超链接

时间:2018-11-27 19:32:16

标签: php html mysqli

我正在处理自己制作的表单,并且一切正常进行。我现在的目标是从数据库中检索一些行并将其作为摘要显示在单独的页面上,但是,我希望返回的行以超链接的形式显示,因此当您单击它们时,它将打开一个更详细的摘要。那排。我的代码片段如下,

$query = "SELECT species, energy FROM root.records";
/**
* Check to see if query was successful
*/
    if ($query) {
     //echo "Success\n";
    }
    else {
        //echo "Error\n";
    }

if ($stmt = $conn->prepare($query)) {
    $stmt->execute();
    $stmt->bind_result($species, $energy);
    while ($stmt->fetch()) {
        printf ("Species: %s | Energy: %s", $species, $energy);
        printf("<br/>");
    }
    $stmt->close();
}
mysqli_close($conn);

这是检索并打印该查询返回的行的内容。现在,我是否应该只编辑其中的printf条语句之一以嵌入为href链接?在我看来,这应该可行,但是由于无法确定要返回的行,因此我很难弄清楚如何知道选择了哪个条目来获得更详细的描述。我当时正在考虑对$_GET做一些事情,但我只对$_POST很熟悉。也许像这样,

<a href="index.php?species=wolf">

并使用GET中的信息提取该物种的所有详细记录?

1 个答案:

答案 0 :(得分:0)

如果我正确理解了这个问题,那应该可以正常工作。

将页面加载到浏览器本身就是一个GET请求-例如考虑这个问题的URL,您可以看到我们在URL中传递了几个参数。

您可以将物种信息作为查询字符串传递-从我一直在构建的Wordpress插件中获取该信息

wordpress.local / wp-admin / plugins.php?page = my_news_settings

查看该URL的$ _GET请求的值,我们可以看到:

array (size=1)
  'page' => string 'my_news_settings' (length=16)

因此,您基本上可以将种类传递到URL,然后使用它从数据库中检索更多信息。

有关$ _GET的重要提示

如前所述,GET请求公开参数,因此请确保始终对传递的任何内容进行清理和验证(您不希望有人在该查询字符串和您的数据库中添加令人讨厌的内容)。

也由于这个原因,请确保您不要在GET请求中传递密码或敏感信息。

在这种情况下,我只是回显了html

链接
while ($stmt->fetch()) {
    printf ("Species: %s | Energy: %s", $species, $energy);
    printf("<br/>");
    echo '<a href="https://url/?species='.$species.'">read more about '.$species.'</a>';
}

我希望这个答案会有所帮助,并且我已经理解-祝您好运:)