我正在创建评论系统,当有新评论发布时,我会通过电子邮件发送给他们。为什么我的PHP if语句不能正常工作?
我在phpMyAdmin中创建了一个名为email_notifications的表。
问题是与此代码:
if(mysql_num_rows(mysql_query("SELECT * FROM email_notifications WHERE email='$email'") or die(mysql_error())) <= 1) {
mysql_query("INSERT INTO email_notifications (email) VALUES ('$email')");
echo mysql_num_rows(mysql_query("SELECT * FROM email_notifications WHERE email='$email'"));
}
else{
die('EMAIL!');
}
这是假设,以防止相同的电子邮件超过一个要在该表中。 而现在mysql_num_rows说有7行。
所以statment现在说:
if(7 <= 1) {
mysql_query("INSERT INTO email_notifications (email) VALUES ('$email')");
echo mysql_num_rows(mysql_query("SELECT * FROM email_notifications WHERE email='$email'"));
}
else{
die('Can\'t post this email! Sorry.');
}
的问题是,它仍然插入电子邮件地址表中,但它不应该。它应该是返回不能发布此电子邮件!抱歉。
这是可能的,我遇到最奇怪的问题,我不能提前弄明白:(
请帮忙,谢谢。
只是注意:不是写作“_PHP不读书我如果correctly_”你应该写,而“_I我不写'if'为PHP correctly_”。没有冒犯性,PHP是可预测的并且相当成熟 - 你应该问一个问题,你是否正确地写了这个条件而不是指责编程语言。 – Tadeck 2012-02-17 00:47:06
但是这种情况对我来说看起来是正确的。 – Shawn31313 2012-02-17 00:52:26
这可能是,但正如你承认的,你对MySql/PHP没有经验,这种错误很快就会出现并解决!另外,看看MySql计数功能;它可能会解决这个问题。 – 2012-02-17 00:55:48