无法解释为什么PHP中的“if else”无法正常工作

时间:2012-05-12 16:34:10

标签: php sql

这是表单处理

if(isset($_POST['clear'])) {
    mysql_query("DELETE FROM md5dictionary");
}

if(isset($_POST['submit'])) {
    if(strlen($_POST['keywords']) < 1 || ctype_space($_POST['keywords']) == true) {
        $errors['blank'] = "<span class='error'> Please insert a word </span>";
    } else {
        $newword = $_POST['keywords'];
        $db_checkExist = mysql_query('SELECT * FROM md5dictionary WHERE keywords="' . $newword . '"');
        echo mysql_num_rows($db_checkExist) . "<br />";
        if(mysql_num_rows($db_checkExist) > 0) {
            echo "outside else " . mysql_num_rows($db_checkExist);
            $finalResult = "<span class='error'> Failed!!! </span>";
        } else {
            echo "inside else " . mysql_num_rows($db_checkExist);
            $md51 = md5($newword);
            $md52 = md5($md51);
            mysql_query('INSERT INTO md5dictionary(keywords, mdFive, mdFive2) VALUES ("' . $newword . '", "' . $md51 . '", "' . $md52 . '")');
            $finalResult = "<span class='success'> Thank you! Wanna add another one? </span>";
        }
    }
}

这是表格

<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
    <fieldset> Input Form </fieldset>
    <label for="keywords"> Input new Keywords into dictionary: </label>
     <?php echo $finalResult; ?>
     <?php echo $errors['blank']; ?>
        <input name="keywords" type="text" />
        <input name="submit" type="submit" value="Add!!" />
        <input name="clear" type="submit" value="Clear Database" />
</form>
<h1> Datas: </h1>
<?php
    $result = mysql_query("SELECT * FROM md5dictionary");
    $rows = mysql_num_rows($result);
    for ($i = 0; $i < $rows; ++$i) {
        echo "Data " . $i . "<br />";
        echo "keywords: " . mysql_result($result, $i, "keywords") . "<br />";
        echo "md5: " . mysql_result($result, $i, "mdFive") . "<br />";
        echo "md5_2: " . mysql_result($result, $i, "mdFive2") . "<br />";
    }
?>

结果如下:http://md5dictionary.hoangminhdat.com

问题:为什么一直说“失败!”为什么它已成功将信息插入我的数据库? 应该没有拼写错误

我知道通过我的愚蠢问题会耗费时间,但我自己无法解释!

2 个答案:

答案 0 :(得分:2)

我测试了您提供的网络链接。

如果我插入一个单词,那么我会'在其他地方'并且看起来它已插入。

如果我再次快速输入这个词,那么我就会'失败'。

所以我认为没有问题,这不是你想要实现的吗? 否则,请重新考虑您的问题并改进不适合您和何时的问题。

修改 如果您想要成功的消息,那么您需要另一个消息:

echo $finalResult;

定义$ finalResult后。

答案 1 :(得分:0)

当你说它插入时,我不确定你的意思,它给出了“失败”。 你是否真的意味着“INSERT INTO md5dictionary ...”被执行了,你有“失败的!!!”代码显示?

如果是这样,我建议你调查和修改表单流,因为最有可能调用自身,表单尝试运行两次,第二次有空值。

这就是我想出的。

祝你有个美好的一天, S上。