试图找出我的代码无效的原因。基本上我有一个像这样的elseif语句:
mysql_connect("localhost","xxxx","xxxxx");
mysql_select_db("xxxxxx");
$sql = "SELECT COUNT(DATE) FROM calendar";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
$checkdate = $row['DATE'];
$DATEFROM = $_POST['DATEFROM'];
$DAYCOUNT = $_POST['DAYCOUNT'];
$DAYS = $_POST['DAYS'];
if ( $DAYCOUNT < $DAYS ) {
header( 'Location: request_go_fail.php' );
}
else if ( $checkdate == $DATEFROM ) {
echo "FAIL!";
}
else {
它不起作用,第一次检查(看看DAYCOUNT是否小于DAYS工作正常,但是当与DB中的条目进行比较时,它似乎没有这样做。似乎是查找的一些问题已经存在的数据,就像我将$ checkdate更改为已经在数据库中的条目一样,它运行良好。
非常感谢任何帮助:)
答案 0 :(得分:2)
SELECT COUNT(DATE) FROM calendar
不返回名为date的字段,print_r $ row变量来确认。最佳解决方案是将语句更改为SELECT COUNT(DATE) AS datecount FROM calendar
,然后执行$checkdate = $row['datecount'];
但是在重新阅读你的代码片段时,我不确定你真的希望日历表中的DATE的 count ,以及目的究竟是什么,很难从代码片段中确定
此外,DATE是SQL中的保留字,而不是列名的最佳选择!
答案 1 :(得分:1)
您是否尝试打印$checkdate
?如果那确实是你正在使用的SQL,我怀疑它是null。
我应该$row['COUNT(DATE)']
我相信,或者您可以使用mysql_fetch_array
和$row[0]
,或者在SQL中使用AS
或
$checkdate = mysql_result($result, 0);
并一起跳过提取电话。
COUNT(DATE)
会返回数据库btw中的非空DATE
字段数,这真的是你想要的吗?
答案 2 :(得分:0)
由于sql命令,$ row变量中没有DATE键。使用它,它被称为Alias:
SELECT COUNT(DATE) AS DATE_COUNT FROM calendar
现在您有一个包含值的密钥DATE_COUNT。
$checkdate = $row['DATE_COUNT'];