php-mysql在html下拉菜单中查询ouptut

问题描述:

我在数据库命名组中有两个表(groupID,groupName)和userBelongToGroups(userID,groupID)。php-mysql在html下拉菜单中查询ouptut

groups      userBelongToGroups 
===================  ===================== 
groupID | groupName  userID | groupID 
-------------------  --------------------- 
    1 | A     1 | 1 
    2 | B     1 | 2 
    3 | C     2 | 2 
    4 | D     3 | 1 
           3 | 3 
           4 | 4 

我想显示列组名的所有值的下拉菜单里面的当前用户。

<select class="form-control" id="system_tags" name="system_tags"> 
    <?php 
     $userID = $_SESSION['userID']; 

     // select the values from 'groupName' column 
     $sql = "SELECT groupName FROM groups, userBelongToGroups WHERE userID = '$userID' and `groups.groupID = userBelongToGroups.groupID`"; 

     $result = mysqli_query($connection, $sql); 
     // display the values from 'groupName' table column 
     while ($row = mysqli_fetch_array($result)){ 
     echo "<option value='".$row['groupName']."'>".$row['groupName']."</option>"; 
     } ?> 
</select> 

所以当'$ userID'= 1时,它应该在下拉菜单中显示两个选项A和B.

注意:SQL查询在MySQL中完美运行。

SELECT groupName FROM groups, userBelongToGroups WHERE userID = '1' and groups.groupID = userBelongToGroups.groupID 
+1

尝试删除'各地 groups.groupID = userBelongToGroups.groupID –

+2

那么...它有什么作用?问题是什么?你只看到一个,根本没有,你的日志中有错误? ...? – Nic3500

有在查询中的这部分的一些印刷错误: enter image description here

它应该阅读 WHERE userID = '$userID' and groups.groupID = userBelongToGroups.groupID";

也试图从会话设置了$用户ID可能导致出现错误也没有默认值被设置。因此,而不是$userID = $_SESSION['userID']你应该有这样的:

$userID = 0; 
if(isset($_SESSION['userID'])){$userID = $_SESSION['userID'];} 

最后,可以考虑这样的查询使用JOIN,如:

SELECT a.groupName FROM groups a JOIN userBelongToGroups b ON a.groupID = b.groupID AND b.userID = '$userID'; 
+0

这工作约翰:) –