基于所选值的PHP删除

基于所选值的PHP删除,php,mysql,Php,Mysql,我正在尝试根据选定的值删除表中的行。例如 我有一个选择列表和一个文本框,当你从选择列表中选择行,并键入城市,它应该删除该行。我不能让它正常工作 <p>Select which row to <span class="del">DELETE</span> by selecting a Row from the dropdown and verifying by typing in the city.</p> <br> <form m

我正在尝试根据选定的值删除表中的行。例如 我有一个选择列表和一个文本框,当你从选择列表中选择行,并键入城市,它应该删除该行。我不能让它正常工作

<p>Select which row to <span class="del">DELETE</span> by selecting a Row from the dropdown and verifying by typing in the city.</p>
<br>
<form method="POST" action"<?php echo $_SERVER['PHP_SELF']; ?>">
<select>
  <option value=""></option>
  <option value="teamnameD">Team Name</option>
  <option value="cityD">City</option>
  <option value="bestplayerD">Best Player</option>
  <option value="yearformedD">Year Formed</option>
  <option value="websiteD">Website</option>
</select>
<br><br>
Verify <span class="del">DELETE</span> by Typing in Name of city&nbsp
<input type="text" name="cityD1">
<br><br>
  <input class="styled-button" type="submit" name="selectList" value="Submit"><br><br>
</form>
<?php

if (isset($_POST['selectList'])){
 }

if (isset($_POST['teamnameD'])) {
  teamnameD();
}

function teamnameD() {




$servername = "localhost:3306";
$username = "";
$password = "";
$dbname = "";

  $conn = new mysqli($servername, $username, $password, $dbname);

  if ($conn->connect_error) {
      echo "Cannot Connect to database ";
  }

  $stmt = $conn->prepare ("DELETE FROM Teams WHERE $selectName LIKE    $selectCity");

  $selectName = $_POST['teamnameD'];
  $selectCity = $_POST['cityD1'];
  $stmt->execute();

  if ($conn->query($sql) === TRUE) {
     echo "Record deleted successfully";
  } else {
      echo "Error deleting record: " . $conn->error;
  }

  $conn->close();


}
通过从下拉列表中选择一行并在城市中键入验证来选择要删除的行


应该是这样的

  $selectName = $_POST['teamnameD'];
  $selectCity = $_POST['cityD1'];
  $stmt = $conn->prepare ("DELETE FROM Teams WHERE $selectName LIKE    $selectCity");

有几个问题。select没有名称,因此在下面的列表中,我将其设置为“fieldName”。我更改了check if submited条件以检查submit按钮的值

然后,您应该将参数绑定到准备好的查询,然后执行。在下面的代码中,我还添加了错误检查(简单的回显和失败时退出)

通过从下拉列表中选择一行并在城市中键入验证来选择要删除的行



代码无法正确输入函数

<p>Select which row to <span class="del">DELETE</span> by selecting a Row from the dropdown and verifying by typing in the city.</p>
<br>
<form method="POST" action"<?php echo $_SERVER['PHP_SELF']; ?>">
<select>
  <option value=""></option>
  <option value="teamnameD">Team Name</option>
  <option value="cityD">City</option>
  <option value="bestplayerD">Best Player</option>
  <option value="yearformedD">Year Formed</option>
  <option value="websiteD">Website</option>
</select>
<br><br>
Verify <span class="del">DELETE</span> by Typing in Name of city&nbsp
<input type="text" name="cityD1">
<br><br>
  <input class="styled-button" type="submit" name="selectList" value="Submit"><br><br>
</form>
<?php

if (isset($_POST['selectList'])){
 }

if (isset($_POST['teamnameD'])) {
  teamnameD();
}

function teamnameD() {




$servername = "localhost:3306";
$username = "";
$password = "";
$dbname = "";

  $conn = new mysqli($servername, $username, $password, $dbname);

  if ($conn->connect_error) {
      echo "Cannot Connect to database ";
  }

  $stmt = $conn->prepare ("DELETE FROM Teams WHERE $selectName LIKE    $selectCity");

  $selectName = $_POST['teamnameD'];
  $selectCity = $_POST['cityD1'];
  $stmt->execute();

  if ($conn->query($sql) === TRUE) {
     echo "Record deleted successfully";
  } else {
      echo "Error deleting record: " . $conn->error;
  }

  $conn->close();


}
我认为您没有为列表中选定的选项创建正确的cheak。您应该为select指定一个名称

<select>
进入

函数内部也有问题

在声明之前,您正在使用
$selectName
$selectCity
。尝试放置声明

$selectName = $_POST['foo'];    //notice the change here!
$selectCity = $_POST['cityD1'];
到这条线之前的地方,在那里你用过它们

$stmt = $conn->prepare ("DELETE FROM Teams WHERE $selectName LIKE    $selectCity");
另外,试着换衣服

$stmt = $conn->prepare ("DELETE FROM Teams WHERE $selectName LIKE    $selectCity");

然后删除这一行

$stmt->execute();

不要忘记,
$selectName
$selectCity
仍然必须在“$sql”之前获取它们的值

谢谢你,我做了那些改变,但仍然无法让它工作。我的sql语句可能有问题吗?我的错误,修复了我的answear,请从头开始阅读并注意我所做的更改,@Wil
$selectName = $_POST['foo'];    //notice the change here!
$selectCity = $_POST['cityD1'];
$stmt = $conn->prepare ("DELETE FROM Teams WHERE $selectName LIKE    $selectCity");
$stmt = $conn->prepare ("DELETE FROM Teams WHERE $selectName LIKE    $selectCity");
$sql = "DELETE FROM Teams WHERE $selectName LIKE    $selectCity";
$stmt->execute();