Php MySQL语句中的变量无效

Php MySQL语句中的变量无效,php,mysql,arrays,multidimensional-array,Php,Mysql,Arrays,Multidimensional Array,我有一个数组,列出了设定日期(2周付款期)的14个日期: 我想循环遍历它并从数据库返回一些数据: foreach($punchCard as $date){ $sql = " SELECT date, time FROM `timeclock` WHERE `employee`=" . $_SESSION['id'] . " AND `date`=" .

我有一个数组,列出了设定日期(2周付款期)的14个日期:

我想循环遍历它并从数据库返回一些数据:

    foreach($punchCard as $date){
        $sql = "
              SELECT date, time 
              FROM `timeclock` 
              WHERE `employee`=" . $_SESSION['id'] . " 
              AND `date`=" . (int)$date['codeDate'] . " 
              ORDER BY `time` ASC ";
        $result = mysql_query($sql);
        $timecard = array();
        while($row = mysql_fetch_assoc($result)){
            $timecard[] = $row;
        }   
    }
这不起作用,但:

$sql = "
     SELECT date, time 
     FROM `timeclock` 
     WHERE `employee`=" . $_SESSION['id'] . " 
     AND `date`=20121204 
     ORDER BY `time` ASC ";
不知何故,
(int)$date['codeDate']
不起作用,但我不能把我的头绕在它周围,这可能很简单


taylorjes

您的SQL有错误
date
time
after
SELECT
应该这样引用,因为它们是函数名:

$sql = "
 SELECT `date`, `time` 
 FROM `timeclock` 
 WHERE `employee`=" . $_SESSION['id'] . " 
 AND `date`=20121204 
 ORDER BY `time` ASC ";

SQL语句是正确的。阵列不是:

while($row = mysql_fetch_assoc($result)){//show last punch
        $timecard[]['time'] = $row['time'];
    }

固定的

什么类型的日期字段使用整数?为什么不试试echo$sql查看它的外观?
$punchCard[0]['codeDate']=date(“Ymd”,strotime(“+0天”,$start))
$sql看起来相同,但没有数组表中的
日期
数据类型是什么?另外,添加
或死亡(mysql_error())在您的
mysql\u查询之后
日期
int(8)
,并且
$result=mysql\u查询($sql)或die(mysql\u error())没有错误这确实给了我任何不同的结果。。。我正试图解决这个问题:`AND
date
='”(int)$date['codeDate']
while($row = mysql_fetch_assoc($result)){//show last punch
        $timecard[]['time'] = $row['time'];
    }