Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从表中显示的数据库中插入特定行的“删除”按钮_Php - Fatal编程技术网

Php 从表中显示的数据库中插入特定行的“删除”按钮

Php 从表中显示的数据库中插入特定行的“删除”按钮,php,Php,您好,我有以下代码显示数据库结果,在表的第三个TD中,我想插入删除按钮,该按钮将删除按钮旁边的数据表记录,删除按钮的第三个TD中的代码应该是什么 <?php $con=mysqli_connect("localhost","table","password","database"); if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $resul

您好,我有以下代码显示数据库结果,在表的第三个TD中,我想插入删除按钮,该按钮将删除按钮旁边的数据表记录,删除按钮的第三个TD中的代码应该是什么

<?php
$con=mysqli_connect("localhost","table","password","database");
if (mysqli_connect_errno())
{
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM recetas_galletas");
echo "<table border='1'>
<tr>
    <th>Title</th>
    <th>Description</th>
</tr>";

while($row = mysqli_fetch_array($result))
{
    echo "<tr>";
    echo "<td>" . $row['title'] . "</td>";
    echo "<td>" . $row['description'] . "</td>";
    echo "<td>" . DELETE BUTTON "</td>";
    echo "</tr>";
}
echo "</table>";
mysqli_close($con);
?>

有几种方法可以存档此记录,首先也是最重要的是,您需要在数据库表上设置一个字段,用于标识要删除的记录,例如ID形式的主键或唯一键

您可以通过创建一个链接,其中包含指向
delete.php
页面的文本,或者您可以使用JQuery和AJAX,或者您可以使用内部表单

您还希望只有授权用户才能使用这些页面,因此您还需要一个带有会话的登录页面。

最简单的是指向删除页面的链接,请参见此处的示例:

<?php
$con = mysqli_connect("localhost","table","password","database");
// Check connection
if (mysqli_connect_errno())
{
    die("Failed to connect to MySQL: " . mysqli_connect_error());
}

if (!$result = mysqli_query($con,"SELECT * FROM recetas_galletas"))
{
    die("Error: " . mysqli_error($con));
}
?>
<table border='1'>
<tr>
<th>Title</th>
<th>Description</th>
</tr>
<?php
while($row = mysqli_fetch_array($result))
{
?>
<tr>
<td><?php echo $row['title']; ?></td>
<td><?php echo $row['description']; ?></td>
<td><a href="delete.php?id=<?php echo $row['id']; ?>">Delete</a></td>
</tr>
<?php
}
mysqli_close($con);
?>
</table>

标题
描述
然后在“删除”页面上,您将看到如下内容:

<?php
// Your database info
$db_host = '';
$db_user = '';
$db_pass = '';
$db_name = '';

if (!isset($_GET['id']))
{
    echo 'No ID was given...';
    exit;
}

$con = new mysqli($db_host, $db_user, $db_pass, $db_name);
if ($con->connect_error)
{
    die('Connect Error (' . $con->connect_errno . ') ' . $con->connect_error);
}

$sql = "DELETE FROM recetas_galletas WHERE id = ?";
if (!$result = $con->prepare($sql))
{
    die('Query failed: (' . $con->errno . ') ' . $con->error);
}

if (!$result->bind_param('i', $_GET['id']))
{
    die('Binding parameters failed: (' . $result->errno . ') ' . $result->error);
}

if (!$result->execute())
{
    die('Execute failed: (' . $result->errno . ') ' . $result->error);
}

if ($result->affected_rows > 0)
{
    echo "The ID was deleted with success.";
}
else
{
    echo "Couldn't delete the ID.";
}
$result->close();
$con->close();

有几种方法可以对此进行存档,首先也是最重要的是,您需要在数据库表上设置一个字段,用于标识要删除的记录,例如ID形式的主键或唯一键

您可以通过创建一个链接,其中包含指向
delete.php
页面的文本,或者您可以使用JQuery和AJAX,或者您可以使用内部表单

您还希望只有授权用户才能使用这些页面,因此您还需要一个带有会话的登录页面。

最简单的是指向删除页面的链接,请参见此处的示例:

<?php
$con = mysqli_connect("localhost","table","password","database");
// Check connection
if (mysqli_connect_errno())
{
    die("Failed to connect to MySQL: " . mysqli_connect_error());
}

if (!$result = mysqli_query($con,"SELECT * FROM recetas_galletas"))
{
    die("Error: " . mysqli_error($con));
}
?>
<table border='1'>
<tr>
<th>Title</th>
<th>Description</th>
</tr>
<?php
while($row = mysqli_fetch_array($result))
{
?>
<tr>
<td><?php echo $row['title']; ?></td>
<td><?php echo $row['description']; ?></td>
<td><a href="delete.php?id=<?php echo $row['id']; ?>">Delete</a></td>
</tr>
<?php
}
mysqli_close($con);
?>
</table>

标题
描述
然后在“删除”页面上,您将看到如下内容:

<?php
// Your database info
$db_host = '';
$db_user = '';
$db_pass = '';
$db_name = '';

if (!isset($_GET['id']))
{
    echo 'No ID was given...';
    exit;
}

$con = new mysqli($db_host, $db_user, $db_pass, $db_name);
if ($con->connect_error)
{
    die('Connect Error (' . $con->connect_errno . ') ' . $con->connect_error);
}

$sql = "DELETE FROM recetas_galletas WHERE id = ?";
if (!$result = $con->prepare($sql))
{
    die('Query failed: (' . $con->errno . ') ' . $con->error);
}

if (!$result->bind_param('i', $_GET['id']))
{
    die('Binding parameters failed: (' . $result->errno . ') ' . $result->error);
}

if (!$result->execute())
{
    die('Execute failed: (' . $result->errno . ') ' . $result->error);
}

if ($result->affected_rows > 0)
{
    echo "The ID was deleted with success.";
}
else
{
    echo "Couldn't delete the ID.";
}
$result->close();
$con->close();

您可以创建一个链接,将id传递到另一个执行删除的php页面。因此,链接将类似于:

echo "<td><a href='http://www.site.com/delete.php?id=" . $row['id'] . "'></td>";
这是一种非常简单的方法,但对您来说可能不是最好的方法。如果您没有验证此页面的用户,任何人都可以轻松地操作此代码并删除表中的任何行

其他方法可以是导航到同一页面并在同一页面中执行相同的过程,或者可以使用ajax,但这是另一个问题


希望这有助于原谅我的英语。

您可以创建一个链接,将id传递到另一个执行删除的php页面。因此,链接将类似于:

echo "<td><a href='http://www.site.com/delete.php?id=" . $row['id'] . "'></td>";
echo "
<form action='user.php' method='post'>
        <table cellpadding='2' cellspacing='2' border='2' >
        <tr>
            <td>Id</td>
            <td>Name</td>
            <td>Gender</td>
            <td>Action</td>
        </tr>
     ";

$select = "select * from user";
$result = mysqli_query($con,$select);
while($r = mysqli_fetch_row($result))
{
    echo "
    <tr>
        <td>$r[0]</td>
        <td>$r[1]</td>
        <td>$r[2]</td>
        <td><input type='submit' value='Delete  $r[0]' style='width:53px;' name='submit' ></td>
    </tr>
    ";
}
echo "
        </table>
        </form>
     ";


if ($_POST['submit'])
{
    $id = $_POST['submit'];
    $id = end(explode(" ",$id));

    $delete = "delete from user where id=$id";
    mysqli_query($con,$delete);
    header("Location:user.php");
}
?>
这是一种非常简单的方法,但对您来说可能不是最好的方法。如果您没有验证此页面的用户,任何人都可以轻松地操作此代码并删除表中的任何行

其他方法可以是导航到同一页面并在同一页面中执行相同的过程,或者可以使用ajax,但这是另一个问题

希望这有助于原谅我的英语。

echo”
echo "
<form action='user.php' method='post'>
        <table cellpadding='2' cellspacing='2' border='2' >
        <tr>
            <td>Id</td>
            <td>Name</td>
            <td>Gender</td>
            <td>Action</td>
        </tr>
     ";

$select = "select * from user";
$result = mysqli_query($con,$select);
while($r = mysqli_fetch_row($result))
{
    echo "
    <tr>
        <td>$r[0]</td>
        <td>$r[1]</td>
        <td>$r[2]</td>
        <td><input type='submit' value='Delete  $r[0]' style='width:53px;' name='submit' ></td>
    </tr>
    ";
}
echo "
        </table>
        </form>
     ";


if ($_POST['submit'])
{
    $id = $_POST['submit'];
    $id = end(explode(" ",$id));

    $delete = "delete from user where id=$id";
    mysqli_query($con,$delete);
    header("Location:user.php");
}
?>
身份证件 名称 性别 行动 "; $select=“选择*来自用户”; $result=mysqli\u查询($con,$select); while($r=mysqli\u fetch\u行($result)) { 回声“ $r[0] $r[1] $r[2] "; } 回声“ "; 如果($_POST['submit'])) { $id=$_POST['submit']; $id=结束(分解(“,$id)); $delete=“从用户处删除,其中id=$id”; mysqli_查询($con,$delete); 标题(“Location:user.php”); } ?>
echo”
身份证件
名称
性别
行动
";
$select=“选择*来自用户”;
$result=mysqli\u查询($con,$select);
while($r=mysqli\u fetch\u行($result))
{
回声“
$r[0]
$r[1]
$r[2]
";
}
回声“
";
如果($_POST['submit']))
{
$id=$_POST['submit'];
$id=结束(分解(“,$id));
$delete=“从用户处删除,其中id=$id”;
mysqli_查询($con,$delete);
标题(“Location:user.php”);
}
?>

您认为应该是什么?你有没有想过如何处理这个问题?您是否尝试过某项功能,但遇到了问题?应该将其更改为触发删除所需数据库项的函数的按钮。hmmmmm需要一些jqueryWho heck否决所有答案?您认为应该是什么?你有没有想过如何处理这个问题?您是否尝试了某项功能,但遇到了问题?应将其更改为一个按钮,该按钮可触发删除所需数据库项的功能。hmmmmm需要一些jqueryWho heck否决所有答案?
仅授权用户才能使用这些页面
绝对!!否则搜索引擎将删除您的所有条目!我强烈建议不要使用任何形式的GET请求来执行删除操作。使用GET没有什么错,只要你像在PHP上做任何其他事情一样正确,这一切都取决于用户的个人选择。有些人将使用AJAX和带有内部页面更改的帖子,有些人将使用表单,我只是给他一个例子,说明如何用最简单的方法归档他想要的内容。很高兴您或投票反对者认为值得这么做。它工作得很好,此页面将位于服务器的限制区域内。@VladimirVasilev如果您正确使用会话并定义对用户的访问级别和权限,以便其他人不会删除或访问他们不应该拥有的内容,那将更好。我没有投票反对!我只是想警告OP或其他读者,他们会得出这个答案。正如我在另一篇评论中所说,你可能会在以后安装一个本地搜索引擎,如果你忘记了这些链接,你会怎么做?所有条目都将被删除。
仅授权用户使用这些页面
绝对!!否则搜索引擎将删除您的所有条目!我强烈建议不要使用任何形式的GET请求来执行删除操作。使用GET没有什么错,只要你像在PHP上做任何其他事情一样正确,这一切都取决于用户的个人选择。有些人会使用AJAX