Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL/PHP:SELECT中的多个AND/OR标记来自两个表_Php_Mysql - Fatal编程技术网

MySQL/PHP:SELECT中的多个AND/OR标记来自两个表

MySQL/PHP:SELECT中的多个AND/OR标记来自两个表,php,mysql,Php,Mysql,我有两张桌子,顾客桌和预订桌。customer和reservations都包含一个名为customerID的行。reservations包含两个名为resStart和ressend的列,其中只包含日期YYYY-MM-DD,这正是我将用于建立$todaysdate变量的格式 我想加入这两个元素,生成一个包含customerID和其他信息的单列表,但前提是$todaysdate正好在两个日期之间。注意:$todaysdate在我的文档中的其他地方建立为一个_-GET-from-url ie.day.

我有两张桌子,顾客桌和预订桌。customer和reservations都包含一个名为customerID的行。reservations包含两个名为resStart和ressend的列,其中只包含日期YYYY-MM-DD,这正是我将用于建立$todaysdate变量的格式

我想加入这两个元素,生成一个包含customerID和其他信息的单列表,但前提是$todaysdate正好在两个日期之间。注意:$todaysdate在我的文档中的其他地方建立为一个_-GET-from-url ie.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> ");

    } ?>
但是,您也可以在SQL:DATENOW中获取todaysdate,并且该语句将是:

SELECT * FROM customer c INNER JOIN reservations r USING(customerID) WHERE DATE(NOW()) BETWEEN r.resStart AND r.resEnd
编辑:在$todaysdate变量周围添加引号以避免混淆

尝试以下查询:

SELECT * FROM customer 
LEFT JOIN reservations  on customer.customerID = reservations.customerID 
WHERE curdate() BETWEEN r.resStart AND r.resEnd
首先直接在数据库中尝试查询。您将得到正确的错误代码和信息,问题出在哪里。 使用联接时,应使用或在table1.field=table2.field上指定联接条件。参考文件: 首先,我必须放下c和r以及c。和r。。我假设这是某种类型的速记,但这让我感到困惑,而且,我的服务器不工作。其次,当直接查询SQL时,显然$todaysdate变量没有定义,用日期ie 2012-07-04n替换它返回了一个错误。添加引用语阻止了错误,即“2012-07-04”,我想我会把这些注释留给以后出于同样目的使用它的人。否则这一切都很好,非常感谢!对,@BryanGuidicianni、c和r是速记表别名,如果它们是在查询中定义的,则不能再使用原始表名,只能使用别名。关于日期-您也可以不加引号-如果您将日期格式化为不带破折号的数字,则仅将20120704作为一个数字
SELECT * FROM customer 
LEFT JOIN reservations  on customer.customerID = reservations.customerID 
WHERE curdate() BETWEEN r.resStart AND r.resEnd