我在数据库中有两个表,名为groups(groupID,groupName)和userBelongToGroups(userID,groupID)。
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
我想在下拉菜单中显示当前用户的groupName列的所有值。
<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
最佳答案
查询的这一部分存在一些印刷错误:
它应该读WHERE userID = '$userID' and groups.groupID = userBelongToGroups.groupID";
如果未设置默认值,则尝试从会话中设置$ userID也会导致错误。因此,您应该使用$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';
关于php - html下拉菜单中的php-mysql查询输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46798378/