从数据库中删除选定的行

时间:2013-07-18 23:15:06

标签: php mysql combobox delete-row

我想从mysql数据库中删除一行。我要删除的行是组合框中的“选定项目”。

到目前为止我的代码:

    $sql = "SELECT data_id FROM projects";
    $result = mysql_query($sql);

    echo "<select name='data_id '>";
    echo "<option selected>Please select...</option>";
    while ($row = mysql_fetch_array($result)) 
    {
        echo "<option value='" . $row['data_id '] . "'>" . $row['data_id'] . "</option>";
    }
    echo "</select>";

    ?>
    <tr><td><input type="submit" name="delete" value="Delete" id="delete"></td></tr></tr></table>
    <?php
     //delete selected item from projects table...
    ?>

组合框显示了我的项目表中的所有项目。当我选择一个项目,然后点击“删除”我想从表中删除该项目。

任何帮助将不胜感激。

enter image description here

3 个答案:

答案 0 :(得分:1)

我不明白为什么他们建议你使用ajax,而你可以制作简单的表格

<form method="post" action="">
<tr><td>
//SOME PHP where you obtain from the database the data_id (this you have done already)
    <option value='" . $row['data_id '] . "'>" . $row['data_id'] . "</option>
//    
<input type="submit" name="delete" value="Delete" id="delete">
</td></tr>
</form>

并在HTML之前的同一页面

<?php
if(isset($_POST['delete']) {
//and now mysql DELETE FROM .... WHERE id = $_POST['data_id']
//dont forget to escape and use mysli instead of mysql
}
?>

顺便说一下。不要使用mysql_ *它不赞成,+转义mysql中的所有东西+当你不需要数组时不要使用fetch_array,fetch_assoc很好;)希望有所帮助。

答案 1 :(得分:0)

你的逻辑应该是:

在html之前的脚本顶部,检查表单中的POST值 如果存在,请使用变量删除相应的数据库值 使用标题('location')返回同一页面重新加载页面(因此从下面的表单中删除值)

您有选择框,将其设为表格,操作=同一页面,方法=发布

明天我会发布示例代码,如果你还没有解决那么

答案 2 :(得分:0)

首先关闭所有使用类型提交的内容,并且您需要一个表单,当您使用选项时,您需要设置一个值或选项                1        2        3        

如果你想删除数据库中的特定行,并且让id为1,那么它就是第一行,就像这样做

if(isset($_GET['to_be_deleted']))
{
$id=mysql_real_escape_string($_GET['to_be_deleted']);
mysql_query("DELETE FROM name_table where id='$id'");
}

如果我的答案不好,请向我提出更多详情