gpt4 book ai didi

php - 单击时执行 mysql DELETE 查询

转载 作者:行者123 更新时间:2023-11-29 12:04:56 25 4
gpt4 key购买 nike

我是 php 和 sql 领域的新玩家。单击删除链接(或按钮)时,我试图从我的人员表中删除身份有人可以告诉我我做错了什么吗?

这是我的 php 代码:

<?php
$db = new DB();
$cg_id = $_SESSION['cg_id'];
$cg_address_id = $_SESSION['cg_address_id'];
$sql ="SELECT f_name, phone, c.id as idc
FROM contacts as c
WHERE c.cg_id = '$cg_id'";

$result = $db->mysqli->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "<article class='contactArea'>";
echo "<a href='contacts2.php?del=".$row["idc"]."' class='deleteContact' name='remove' value='remove'>Remove</a></article>";

if(isset($_POST['idc'])){

$idco = $_POST['idc'];

$removeQuery = "DELETE FROM contacts as c WHERE id=".$idco." ";


$resultt = mysql_query($removeQuery);
if($resultt) {
header('Location: '.$_SERVER['REQUEST_URI']);
}
echo "<script>window.location.reload(true);</script>";
}
}

}else {
echo "Please edit senior profile for monitoring!";
}
?>

最佳答案

试试这个(显然用你的 mysql 服务器和数据库的详细信息替换“localhost”、“dbuser”、“dbpassword”和“database_name”):

<?php
$db = new mysqli("localhost","dbuser","dbpassword","database_name");
$cg_id = $_SESSION['cg_id'];
$cg_address_id = $_SESSION['cg_address_id'];
// I've moved the deletion code to BEFORE the select query, otherwise the
// query will be shown including the to-be-deleted data and it is then deleted after it is displayed
if(isset($_GET["del"])){ // <--- this was $_POST["del"] which would have been unset
$idc = $_GET["del"];
if($db->query("DELETE FROM contacts WHERE id=$idc")){
echo "deleted";
} else {
echo "fail";
}
}
$sql ="SELECT photo, f_name, phone, street, street_num, city, l_name, c.id as idc FROM contacts as c, address as a WHERE c.cg_id = '$cg_id' and a.id = c.address_id";
$result = $db->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "<article class='contactArea'>";
echo "<article class='contact5 lior'>";
echo "<img class='CSImage' src='" .$row["photo"]."'>";
echo "<section class='generalFormTextW nameCPosition'> " .$row["f_name"]." ".$row["l_name"]."<br></section>";
echo "<section class='generalFormTextW phoneCPosition'> " .$row["phone"]."<br></section>";
echo "<section class='generalFormTextB addressCPosition'>".$row["city"].", <br> ".$row["street"]." ".$row["street_num"]. "<br></section>";
echo "<a href='contacts2.php?del=".$row["idc"]."' class='deleteContact' name='remove' value='remove'>Remove</a></article></article>";
}
}
?>

请注意,我正在更改您使用 mysqli 的方式,以便您直接使用它,而不是作为 DB 对象的成员,这是我在其他地方看到它使用的方式 - 在我看来,好像您实际上并没有打开数据库连接(尽管也许您只是没有包含它,因为它显示了您的密码?)

**编辑:我已将 $_POST["del"] 更改为 $_GET["del"] - 因为您在 url 中设置 del ("contacts2.php?del=") 这将是 GET不是发布。

**编辑:我已经移动了删除代码,以便解决您必须刷新页面才能查看已删除记录的数据的问题 - 之前显示信息然后删除,我们要删除然后显示。

关于php - 单击时执行 mysql DELETE 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31674231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com