我有一个关于删除php功能的问题。 指导PHP我是一个真正的菜鸟。
我想在php循环中创建一个删除链接。
这是我的home.php:
while($row = $result->fetch_assoc()) {
echo "<tr>";
echo "<td class='info-item'>".$row["userID"]."</td>";
echo "<td class='info-item'>".$row["userName"]." </td>";
echo "<td class='info-item'>".$row["userLast"]."</td>";
echo "<td class='info-item'>".$row["userDegree"]."</td>";
echo "<td class='info-item'>".$row["userOrganization"]."</td>";
echo "<td class='info-item'>".$row["userIndustry"]."</td>";
echo "<td class='info-item'>".$row["userAddress-1"]."</td>";
echo "<td class='info-item'>".$row["userAddress-1"]."</td>";
echo "<td class='info-item'><a href='$delete'>Link</a></td>";
}
这一行:
echo "<td class='info-item'><a href='$delete'>Link</a></td>";
无效。
for $delete
我在我的脚本之上使用它:
$delete = "delete.php";
这是一个看起来像这样的delete.php。
ob_start();
include("dbconfig.php");
if(isset($_GET['userID'])!="") {
$delete=$_GET['userID'];
$delete=mysql_query("DELETE FROM tbl_users WHERE userID='$delete'");
if($delete)
header("Location:index.php");
else
echo mysql_error();
}
ob_end_flush();
但是关于删除我点击的某个ID,似乎没有任何事情发生。
请帮忙。
答案 0 :(得分:0)
您的删除无效,因为它是冗余且静态的。您应该通过(至少)将用户ID附加到<button ng-click="go('/hotellist/'+topHeading+'?tab=packages')" ></button>
来使其成为动态。然后,此delete.php
将用于确定要删除的记录...
id
<强> PHP:强>
<?php
while($row = $result->fetch_assoc()) {
// GENERATE AN ID BASED URL FOR THE DELETE
// THIS WOULD READ SOMETHING LIKE: "delete?id=1"
// AND THE ID WOULD BE UNIQUE ACROSS EACH ROW....
// YOU CAN THEN USE THE ID ($_GET['userID'] TO DETERMINE WHICH USER
// ADD userId WHICH RECORD YOU HAVE TO DELETE....
$delete = "delete.php?userID=" . $row["userID"];
echo "<tr>";
echo "<td class='info-item'>" . $row["userID"] . "</td>";
echo "<td class='info-item'>" . $row["userName"] . " </td>";
echo "<td class='info-item'>" . $row["userLast"] . "</td>";
echo "<td class='info-item'>" . $row["userDegree"] . "</td>";
echo "<td class='info-item'>" . $row["userOrganization"] . "</td>";
echo "<td class='info-item'>" . $row["userIndustry"] . "</td>";
echo "<td class='info-item'>" . $row["userAddress-1"] . "</td>";
echo "<td class='info-item'>" . $row["userAddress-1"] . "</td>";
echo "<td class='info-item'><a href='{$delete}' >Delete User</a></td>";
}
答案 1 :(得分:0)
您应该在链接中包含用户ID:
echo "<td class='info-item'><a href='$delete?userID={$row["userID"]}'>Link</a></td>";
此外,您的代码很容易使用SQL注入并使用mysql_ *函数,以后将不再支持这些函数。用mysqli或PDO类中的函数替换它们。
答案 2 :(得分:0)
当您将控件发送到另一个页面时,$delete
变量将不会被传递。因此,最好使用查询字符串。我最好的解决方案是:
$_GET
获取记录的查询字符串。 home.php
代码:
echo "<td class='info-item'><a href='{$delete}?userID=".$row["userID"]."'>Link</a></td>";
现在位于主delete.php
:
$delete = $_GET["userID"];
注意:您的代码存在很多漏洞。不要使用
mysql_*
函数,因为它们已被弃用。
答案 3 :(得分:0)
您没有使用您的网址发送userID
,请在此处更改。
echo "<td class='info-item'><a href='$delete?userID=".$row["userID"]."'>Link</a></td>";
也可以在此header
之后使用退出
header("Location:index.php");
exit;