我有两张桌子customer
和reservations
。 customer
和reservations
都包含一行名为customerID
的行。 reservations
包含两个名为resStart和resEnd的列,其中只包含日期(YYYY-MM-DD,这是我将用于建立$ todaysdate变量的确切格式。
我想加入这两个来制作一个包含customerID
单列的表以及其他信息,但前提是$ todaysdate落在两个日期之间。注意:$ todaysdate在我的文档中的其他位置建立为来自url的_GET(即day.php?date = 2012-07-04),或者如果没有建立,则今天的日期为日期('Y-m-d')。这部分代码不是我的问题所在,我确信这一点。 我认为在mySql查询中定义信息时,某处存在语法错误。
这是我正在使用的内容。一点点解释:我正在围绕Javascript包装PHP代码,这里的目标是为每个resStart生成一个单独的DIV。 Javascript正在获取偏移量变量以添加到每个DIV的CSS中,因此每个DIV都会相对于它所代表的设备自动放置。
<?php
$getreservations = mysql_query("
SELECT * FROM customer LEFT JOIN reservations WHERE ( customer.customerID = reservations.customerID )
AND ($todaysdate = resStart OR $todaysdate >= resStart AND $todaysdate <= resEnd )
")
or die(mysql_error());
while( false !== ($row = mysql_fetch_assoc($getreservations)))
{
$nameLast = $row["nameLast"];
$nameFirst = $row["nameFirst"];
$customerID = $row["customerID"];
$equipID = $row["equipID"];
$resStart = $row["resStart"];
$resEnd = $row["resEnd"];
$timeStart = $row["timeStart"];
$timeEnd = $row["timeEnd"];
$result = strtotime($timeStart);
$minute = date("i", $result );
$second = date("s",$result );
$hour = date("H", $result );
if(true) {
?>
<script language='javascript'>
var left = $('#<?php echo("$hour$minute");?>').offset().left;
var top = $('#<?php echo $equipID;?>').offset().top;
$(document).ready(function() {
$('#<?php echo ("$customerID$equipID");?>).css( { 'left': (pos.left + width) + 'px', 'top': (pos.top + top) + 'px' } );
}
</script>
<?php }
echo ("<div class='resContainer $customerID$equipID' id=$customerID$equipID>$nameLast, $nameFirst</div> ");
} ?>
答案 0 :(得分:1)
SELECT * FROM customer c INNER JOIN reservations r USING(customerID) WHERE '{$todaysdate}' BETWEEN r.resStart AND r.resEnd
但是,您也可以在SQL中获取“todaysdate”:DATE(NOW())
,语句将为:
SELECT * FROM customer c INNER JOIN reservations r USING(customerID) WHERE DATE(NOW()) BETWEEN r.resStart AND r.resEnd
编辑:在$todaysdate
变量周围添加引号以避免混淆
答案 1 :(得分:1)
答案 2 :(得分:0)
尝试以下查询:
SELECT * FROM customer
LEFT JOIN reservations on customer.customerID = reservations.customerID
WHERE curdate() BETWEEN r.resStart AND r.resEnd