我有一个根据数据库内部数据生成的表。 该表的每一行都是我数据库的一行。在每一行的末尾,我创建一个链接以启动从表和数据库中删除数据的过程。这是我的代码片段:
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "<tr>";
echo "<th>".$row["username"]."</th>";
$user = $row["username"];
echo "<th>".$row["name"]."</th>";
$name = $row["name"];
echo "<th><a href='./test.php'.urlencode($user)>Remove</a></th>";
echo "</tr>";
}
}
如您所见,单击链接后,我要运行test.php
并设置变量(及其在该行的值)。香港专业教育学院试图用urlencode
来做到这一点,但当做echo $user
时,它作为未定义的变量返回。我也尝试过echo "<th><a href='./test.php?link='$user>Remove</a></th>";
。
我希望能够发送最多6个带值的变量。
前两列是用户名和名称。您可以看到在while
循环中设置并显示了这些值。我希望循环的每次迭代都创建一个唯一的链接,以从数据库中删除该行。或者仅在这种情况下,单击链接后发送该行的数据值。
答案 0 :(得分:2)
您可以使用http_build_query
功能:
$qs = [
'user' => $row["username"],
'name' => $row["name"],
// ... 4 more values
];
echo '<th><a href="test.php?' . http_build_query($qs, null, '&', PHP_QUERY_RFC3986) . '">Remove</a></th>';
答案 1 :(得分:0)
您没有在链接中定义变量名称。线
echo "<th><a href='./test.php'.urldecode($user)>Remove</a></th>";
应该像
echo "<th><a href='./test.php?user=".urlencode($user)."&name=".urlencode($name)."'>Remove</a></th>";
然后,在您的test.php文件中,您将使用$_GET['user']
和$_GET['name']
读取这些变量。
另外,请注意,在原始代码中,您使用的是urldecode
而不是urlencode