一次从mySQL数据库中删除多个值

时间:2016-12-08 15:43:18

标签: php html mysql database forms

我已经在基本的mySQL数据库方面做了一些工作,并且已经学会通过PHP学习显示内容,插入,删除和更新数据。

现在我的任务是将所有内容放在一起,我可以选择多个人(我的数据库包含名称)并立即删除它们,而不是单独输入每个名称。

这是我用来显示我的数据库内容的文件:

include'databaseinfo.php';
include'databaseconnectioncheck.php';

$result = $conn->query("SELECT id, fornavn, efternavn, lokation FROM $table1_db");
echo "Der er ". $result->num_rows ." personer i databasen <br><br>";

while ( $row = $result->fetch_assoc() )
    echo "ID " . $row['id'] ." er " . $row['fornavn'] . " " . $row['efternavn'] . " som bor i " . $row['lokation'] . ".<br><hr>"; 

这是我用来从我的数据库中删除元素的文件:`     Fornavn:          Efternavn:          Lokation:               

if (!empty($_POST['fornavnFraFormDelete']) AND ($_POST['efternavnFraFormDelete']) AND ($_POST['lokationFraFormDelete'])) {

include 'databaseconnectioncheck';

$fornavnFraFormDelete = $_POST['fornavnFraFormDelete']; //Variablerne oprettes fra formfeltet
$efternavnFraFormDelete = $_POST['efternavnFraFormDelete'];
$lokationFraFormDelete = $_POST['lokationFraFormDelete'];

$conn->query("DELETE FROM $table1_db WHERE fornavn='$fornavnFraFormDelete' 
    AND efternavn='$efternavnFraFormDelete' AND lokation='$lokationFraFormDelete'");
    echo "Du har fjernet ".$fornavnFraFormDelete. " " .$efternavnFraFormDelete." fra databasen.<br><br>";            
}

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

include 'databaseconnectioncheck';

$conn->query("DELETE FROM $table1_db");
    echo "<br> <br> Du har fjernet alle fra databasen.";
}

我希望你理解它,即使有些是丹麦语,如果没有,请告诉我,我会翻译它。

无论如何,我已经拍了一张照片,应该解释我的喜好,如果没有,请告诉我。 enter image description here

1 个答案:

答案 0 :(得分:0)

首先,您的复选框以此方式显示名称name="id[]"

你有{i>假设

这样的复选框
<input type="checkbox" name="id[]" value="1">
                                ^ give this parentheses after name to all checkboxes of id.

之后你需要使用foreach来实现这个

foreach($_POST['id'] as $value) {
   $conn->query("DELETE FROM $table1_db WHERE id = $value);
    echo "Du har fjernet ".$fornavnFraFormDelete. " " .$efternavnFraFormDelete." fra databasen.<br><br>";            
   }