gpt4 book ai didi

php - 使用 PHP 删除数据库值,不起作用

转载 作者:行者123 更新时间:2023-11-29 00:36:59 25 4
gpt4 key购买 nike

我正在尝试从我的表单中删除多个值(它是一个汽车租赁系统,我想让员工能够从记录中删除汽车)。我是 PHP 的新手,但这就是我现在所拥有的。

<?php
$link = mysql_connect ("xxxx", "xxxx", "xxxx");
mysql_select_db ("xxxx");

$query = "SELECT * from car";
$result = mysql_query ($query);
echo ("<form action=\"deleting2.php\" method=\"GET\">");
echo "<table id = 'table-3'>";
echo "<thead>";
echo "<th>Car ID</th>
<th>Car Name</th>
<th>Fuel Type</th>
<th>Transmission</th>
<th>Engine Size</th>
<th>Doors</th>
<th>Total</th>
<th>Available</th>
<th>Date Added</th>
<th>Delete</th> ";
echo "</thead>";
for ($i = 0; $i < mysql_num_rows ($result); $i ++)
{
$row = mysql_fetch_object ($result);
echo "<tbody>";
echo "<tr>";
echo "<td>$row->ID</td>";
echo "<td>$row->CARNAME</td>";
echo "<td>$row->FUELTYPE</td>";
echo "<td>$row->TRANSMISSION</td>";
echo "<td>$row->ENGINE_SIZE</td>";
echo "<td>$row->DOORS</td>";
echo "<td>$row->TOTAL</td>";
echo "<td>$row->AVAILABLE</td>";
echo "<td>$row->DATEADDED</td>";
echo "<td><input type='checkbox' name='delete[]' value='$row->ID' /></td>";
echo "</tr>";
echo "</tbody>";
}
echo ("<tr><td colspan='6' align='center'><input type=\"submit\" value=\"Delete \"></td> </tr></table></form>");
echo "</table>";
mysql_close ($link);
?>

现在,当我按下删除按钮时,它会转到我在表单操作中提到的名为“deleting2.php”的 php 页面,其中包含以下代码:

<?php
$link = mysql_connect ("xxxx", "xxxx", "xxxx");
mysql_select_db ("xxxx");

$ID='$_GET[ID]';

// DELETE ANY RECORDS IN DATABASE
for ($i = 0; $i < @mysql_num_rows ($result); $i ++)
{
if(isset($_GET['delete[]']) && $_GET['delete[]']=='$row->ID');
{
$query=("DELETE FROM car WHERE ID='$_POST[ID]'");
$result1 = mysql_query($query);
}
}
mysql_close ($link);

?>

问题是,它并没有从我的数据库中删除任何内容。处理deleting2.php时地址栏的URL为:

http://www.computing.northampton.ac.uk/~11430900/a1/webpages/deleting2.php?delete[]=6

据我所知,它选择了 ticket 的值。在这里,我选中了相应 ID 值为 6 的框。因此,复选框确实有效,它只是不对数据库执行任何操作,不会删除该值。我尝试了很多教程,但无法使用复选框删除它。任何帮助将不胜感激。

最佳答案

您不需要像问题中提到的那样通过以下循环进行迭代

for ($i = 0; $i < @mysql_num_rows ($result); $i ++)
{
if(isset($_GET['delete[]']) && $_GET['delete[]']=='$row->ID');
{
$query=("DELETE FROM car WHERE ID='$_POST[ID]'");
$result1 = mysql_query($query);
}
}
mysql_close ($link);

只是为了以下。

将您的表单方法更改为 POST。

使用以下代码。内爆是必要的,因为 $_POST['delete'] 将是一个数组

if(isset($_POST['delete']) && count($_POST['delete']) > 0) {
$query=("DELETE FROM car WHERE ID in ('".implode(',',$_POST['delete'])."')");
$result1 = mysql_query($query);
}

关于php - 使用 PHP 删除数据库值,不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13802034/

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