Echo删除链接到php

时间:2016-07-18 09:30:41

标签: php

我有一个关于删除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,似乎没有任何事情发生。

请帮忙。

4 个答案:

答案 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变量将不会被传递。因此,最好使用查询字符串。我最好的解决方案是:

  • 从数据库中获取ID。
  • 将ID附加到链接。
  • 使用$_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;