这是要删除的php代码。
<?php
$namez = $_POST['vendel'];
$name = mysql_real_escape_string($namez);
mysql_connect("localhost","root",
"") or die("Wrong username or password");
mysql_select_db("vendor") or die( "Unable to select database");
mysql_query("DELETE FROM vendoradd WHERE venname='$name'");
?>
下面是我从一个组合框中进行选择的代码。
<form action="delete.php" method="post">
<select name="vendel">
<?php
$con=mysqli_connect("localhost","root","","vendor") or die("Unable to connect");
$query = mysqli_query($con,"select venname from vendoradd");
while ($row=$query->fetch_assoc()){
echo "<option value='"vendel1'">".$row['venname']."</option>";
}
?>
</select>
<input type="submit" value="Delete" id="del">
</form>
我没有得到任何错误,页面重定向到delete.php文件,但当我交叉检查数据库所选数据未被删除。任何帮助都是感激的。提前感谢
嗯…这是因为你发布了一个值"vendel1",这意味着你总是发送相同的值,只是为了让你知道…选择组合框的名称是$_POST中的索引,选项中的值是值,例如,如果您有:
<form action="" method="post">
<select name="foo">
<option value="1">Stack</option>
<option value="2">Overflow</option>
</select>
<input type="submit">
</form>
<?php
echo $_POST['foo'];
?>
选择选项"Stack"
的输出$ _POST [' foo ']
将为1.
因此,如果您要使用选择组合框发布,则必须为每个选项提供唯一值,以便您可以删除数据库中的正确选项。我的建议是为表中的每个用户创建一个唯一的ID,比较唯一ID比字符串更好…为什么?因为如果你有两个名字相同的人,你会把他们都删除,但是,如果你有一个唯一的ID,你就不会有这个问题。如果要删除
<form action="delete.php" method="post">
<select name="vendel">
<?php
$con=mysqli_connect("localhost","root","","vendor") or die("Unable to connect");
$query = mysqli_query($con,"select TRIM(venname) from vendoradd");
while ($row=$query->fetch_assoc()){
echo "<option value=".$row['venname'].">".$row['venname']."</option>";
}
?>
</select>
<input type="submit" value="Delete" id="del"></form>
你的删除应该像这样:
<?php
$namez = $_POST['vendel'];
$name = mysql_real_escape_string($namez);
mysql_connect("localhost","root", "") or die("Wrong username or password");
mysql_select_db("vendor") or die( "Unable to select database");
mysql_query("DELETE FROM vendoradd WHERE TRIM(venname) = TRIM('$name')");
?>