2016-12-03 61 views
0

似乎无法找到解决此特定问题的帖子。 SQL查询(如下所示)在我从shell执行时正常工作,但在PHP中抛出一个未定义的索引。我认为问题在于它不能识别在php中时属性的歧义。为什么这个JOIN查询在shell中而不是在php中工作?

错误我在PHP中得到的是:

Notice: Undefined index: s.RowNumber in /home/xx/xx/xxx/xxx/checkAvailability.php on line 14.

代码:

<?php 
include'connect.php' 
?> 
    <form method="post" action="chooseDate.php"> 
    <?php 
    $sql = "SELECT s.RowNumber 
      FROM Seat AS s LEFT JOIN Booking AS b 
      ON s.RowNumber = b.RowNumber 
      AND b.PerfDate = '2016-12-12' 
      AND b.PerfTime = '20:30:00' 
      WHERE b.RowNumber IS NULL"; 
    $handle = $conn->prepare($sql); 
    $handle->execute(); 
    $res = $handle->fetchAll(); 
     foreach($res as $row) { 
      echo "<input name='Seat' type='checkbox' value=".$row['s.RowNumber']."><br>"; 
     } 
    ?> 
    <input class="mybutton" type="submit" value="Choose Date"/> 
    </form> 

任何人都可以对这个问题解释一下?提前致谢。

+0

如果你_“未定义指数” _,它不是SQL查询这是个问题。阅读更多关于它在这里:http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined-index –

回答

0

您必须在您的foreach循环中使用$row['RowNumber']s.只是表的别名,你应该忽略它。

+0

它似乎是'RowNumber',而不是'rowNumber'。否则,它很可能会再次发出相同的通知。 :) –

+0

是的,之前尝试过。它摆脱了错误,但返回空白结果。 –

+0

@ScheurichGolzari检查我的编辑 – maestroosram

0

先给别名s.RowNumber,并用它在echo语句

+0

他为什么要用列名的别名?他只需在从他的数组中获取结果时移除's.'(表别名)。 –

相关问题