我有兩個表,customer
和reservations
。 customer
和reservations
都包含稱爲customerID
的行。 reservations
包含名爲resStart和resEnd的兩列,其中只有日期(YYYY-MM-DD,這是我將用於建立$ todaysdate變量的確切格式。MySQL/PHP:來自兩個表的SELECT中的多個AND/OR標籤
我想加入這兩個列生成一個單列customerID
以及其他信息的表格,但前提是$ todaysdate在兩個日期之間或之間。注意:$ todaysdate是在我的文檔中其他地方建立的,可以是來自url的_GET(即.day.php?date = 2012-07-04)或者如果沒有成立,今天的日期與日期('YM-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> ");
} ?>
首先,我不得不放棄'c'和'r'以及'c.'和'r.'。我認爲這是一種簡寫形式,但它讓我感到困惑,而且還沒有在我的服務器上工作。 其次,當直接查詢SQL時,顯然沒有定義$ todaysdate變量,並用日期(即2012-07-04)替換爲n返回錯誤。添加引號可以阻止錯誤(即'2012-07-04') 我想我會留下這些筆記,以供任何人稍後使用,以達到相同的目的。否則,這工作完美,非常感謝你! – 2012-04-08 22:39:58
Right,@BryanGuidicianni,'c'和'r'是簡寫(表別名),如果它們是在查詢中定義的,則不能再使用原始表名,並且只能使用別名。關於日期 - 你也可以不用引號 - 如果你格式化沒有破折號的日期(只是20120704作爲一個數字) – poncha 2012-04-09 08:37:52