删除按钮删除数据库表行

时间:2013-11-13 17:29:28

标签: php mysql sql sql-delete

我想让我的网站用户能够添加,编辑和删除存储在数据库中的常见问题解答的问题。他们从表单中选择标题,然后按“选择”(编辑q& a)或“删除”。删除不起作用。

第一个问题是:当他们点击删除时,会将他们引导到“编辑”表单,而不是删除数据库表行。

第二个问题:当我点击按钮时,我要求确认删除。无论他们按“确定”还是“取消”都无关紧要,他们总是会以“编辑”形式出现。

管理面板中的代码(index.php):

    if(isset($_POST['actie']) && $_POST['actie'] != "")
    {
        $actie = $_POST['actie'];
        if($actie == "csd_faq") { verwerk_csd_faq($DB); }
        if($actie == "csd_faq_edit") { verwerk_edit_csd_faq($DB); }
    }

    if($GLOBALS['logged_in'] && isset($_GET['actie']) && $_GET['actie'] != "")
    {
        $actie = $_GET['actie'];

        if($actie == "csd_faq") { toon_csd_faq($DB); }
        if($actie == "csd_faq_edit") { edit_csd_faq($DB); }
     }

功能代码:

//ADD FAQ

    function toon_csd_faq($DB)
    {?>
    <h2>Een FAQ toevoegen:</h2>
    Gebruik het formulier hieronder om een FAQ toe te voegen.

    <br /><br />
    <form action='index.php?actie=csd_faq' method='post'>
        <input type='hidden' name='actie' value='csd_faq' />
        <input type='hidden' name='naam' value='<? echo $GLOBALS['nickname']; ?>' />
        Vraag (Q): <br />
        <input type='text' name='q' size='80' /><br /><br />
        Antwoord (A): <br />
        <textarea name='a' cols='80' rows='10'></textarea><br /><br />
        <input type='submit' value='Toevoegen' />
    </form>
<?}

function verwerk_csd_faq($DB)
{
    $naam = $_POST['naam'];
    $q = clean($_POST['q']);
    $a = clean($_POST['a']);

    $DB->q("INSERT INTO `csd_faq` (`datum`, `naam`, `q`, `a`) VALUES (NOW(), '$naam', '$q', '$a')");

    echo "<b class='roze'>FAQ succesvol toegevoegd!</b>"
        ."<br /><br />";
}

// EDIT FAQ

function edit_csd_faq($DB)
{
    echo "<h2>Een FAQ bewerken:</h2>";

    if(isset($_GET['faq_id'])) //bewerken
    {
        $faq_id = $_GET['faq_id'];
        $faq = $DB->q1("SELECT * FROM `csd_faq` WHERE `faq_id` = '$faq_id'");

        ?>
        Gebruik het formulier hieronder om de FAQ te bewerken
        <br /><br />
        <form action='index.php?actie=csd_faq_edit' method='post'>
            <input type='hidden' name='actie' value='csd_faq_edit' />
            <input type='hidden' name='faq_id' value='<? echo $faq_id; ?>' />
            <input type='hidden' name='naam' value='<? echo $GLOBALS['nickname']; ?>' />
            Vraag (Q): <br />
            <input type='text' name='q' size='80' value='<? echo $faq[3]; ?>' /><br /><br />
            Antwoord (A): <br />
            <textarea name='a' cols='80' rows='10'><? echo $faq[4]; ?></textarea><br /><br />
            <input type='submit' name='update' value='Update' />
        </form>
        <br />
        &laquo; <a href='javascript:history.go(-1)'>Kies een andere FAQ</a>
    <?} 

    else { //selectie box tonen ?>

        Selecteer de te bewerken FAQ.
        <br /><br />
        <form action='index.php' method='get'>
            <input type='hidden' name='actie' value='csd_faq_edit' />
            Titel: <br />
            <select name='faq_id' size='10' style='width:500px;'>
            <?
                $result = $DB->q("SELECT * FROM `csd_faq` ORDER BY `datum` DESC");
                $lijst = "";
                while($faq = $DB->fa($result))
                {
                    $lijst .= "<option value='".$faq[0]."'>".$faq[3]."</option>";
                }
                echo $lijst;
            ?>
            </select>
            <br /><br />
            <input type='submit' name='selecteer' value='Selecteer' />
            <input type='submit' name='delete' value='Verwijder' onClick='confirm("Zeker dat je deze FAQ wilt verwijderen?")' />
        </form> 
    <?}
}

function verwerk_edit_csd_faq($DB)
{
    if(isset($_POST['update'])) {

        $faq_id = $_POST['faq_id'];
        $naam = $_POST['naam'];
        $q = clean($_POST['q']);
        $a = clean($_POST['a']);

        $DB->q("UPDATE `csd_faq` SET `datum` = NOW(), `naam` = '$naam', `q` = '$q', `a` = '$a' WHERE `faq_id` = '$faq_id'");

        echo "<b class='roze'>FAQ succesvol bewerkt!</b>"
            ."<br /><br />";
    }

    else if(isset($_GET['delete'])) {

        $faq_id = $_GET['faq_id'];

        $DB->q("DELETE FROM `csd_faq` WHERE `faq_id` = '$faq_id'");
        echo "<b class='roze'>FAQ succesvol verwijderd!</b>"
            ."<br /><br />";
    }
}

1 个答案:

答案 0 :(得分:0)

您可能想要检查$_POST['delete']$_POST['faq_id'],而不是$_GET['delete']$_GET['faq_id'],因为表单的方法是POST