Php 从“删除数据库列”;选择";使用mySQL的语句

Php 从“删除数据库列”;选择";使用mySQL的语句,php,html,mysql,sql,database,Php,Html,Mysql,Sql,Database,我有下面的代码,它显示了我的books表中的所有书籍 <select id="booksToDelete"> <?php foreach($bookTitles as $bookTitle) { echo '<option>'; echo $bookTitle['Title']; echo '</option>'; } ?> </selec

我有下面的代码,它显示了我的books表中的所有书籍

<select id="booksToDelete">
    <?php
        foreach($bookTitles as $bookTitle) {
        echo '<option>';
        echo $bookTitle['Title'];
        echo '</option>';
        }
    ?>
    </select>

<input type="submit" name="deleteBook" id="deleteBook" value="Delete Book" />
    <?php

请帮忙

正如chris85在评论部分所指出的,您应该使用
ID
s来确定要在表中删除的内容。使用
标题
会导致多次删除,如果存在具有相同确切标题的书籍

让我们修复您的
选项
标记。我们将使用
value
属性将
ID
作为值,而不是
标题
。让我们也为您的
select
字段使用
name
属性

这在
表单中
标签中,对吗

<form method="POST" action=""> <!-- PUT THE PAGE WHERE YOU WILL PROCESS THE REQUEST TO THE ACTION ATTRIBUTE -->
    <select name="booksToDelete" id="booksToDelete">
<?php
    foreach($bookTitles as $bookTitle) {
        echo '<option value="'.$bookTitle['id'].'">'; /** REPLACE CORRESPONDING INDEX WITH THE UNIQUE ID COLUMN OF THE book TABLE **/
        echo $bookTitle['Title'];
        echo '</option>';
    }
?>
    </select>
    <input type="submit" name="deleteBook" id="deleteBook" value="Delete Book" />
</form>

标题在引号中,但“标题”不是唯一的,您应该使用ID。在输入title/ID时,还应该参数化查询。如果问题是如何在选项中输入值,则需要添加属性
<form method="POST" action=""> <!-- PUT THE PAGE WHERE YOU WILL PROCESS THE REQUEST TO THE ACTION ATTRIBUTE -->
    <select name="booksToDelete" id="booksToDelete">
<?php
    foreach($bookTitles as $bookTitle) {
        echo '<option value="'.$bookTitle['id'].'">'; /** REPLACE CORRESPONDING INDEX WITH THE UNIQUE ID COLUMN OF THE book TABLE **/
        echo $bookTitle['Title'];
        echo '</option>';
    }
?>
    </select>
    <input type="submit" name="deleteBook" id="deleteBook" value="Delete Book" />
</form>
/** ESTABLISH YOUR CONNECTION **/
$con = new mysqli("host", "user", "password", "database"); /** REPLACE NECESSARY DATA **/

/* CHECK CONNECTION */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

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

    $deleteQuery = "DELETE FROM book WHERE id = ?"; /** REPLACE NECESSARY UNIQUE ID COLUMN **/
    /*                                      ^       */

    $stmt = $con->prepare($deleteQuery);
    $stmt->bind_param("i", $_POST["booksToDelete"]);
    $stmt->execute();
    $stmt->close();

}