0

我正在整理一个联赛脚本。当有人注册联赛时,他们会从下拉字段中的可用球队列表中进行选择。

我遇到的问题是,当有多个字段时,我会收到此错误消息。

“子查询返回超过 1 行”

这是脚本:

//List available teams
$query_chamoline = "SELECT * FROM MLB WHERE `team`<>(SELECT `team` FROM leaguemembers     WHERE `leagueid`=\"$lid\" AND `active`='Y') ORDER BY `team` ASC";
$chamoline = mysql_query($query_chamoline) or die(mysql_error());
$row_chamoline = mysql_fetch_assoc($chamoline);
$totalRows_chamoline = mysql_num_rows($chamoline);

<select id="team">
<option value="">Select Available Team</option>
<?php do { ?>   

  <?php
$tname=$row_chamoline['team'];

if($totalRows_chamoline>0)
{?>
<option value="<?php echo $tname ?>"><?php echo $tname ?></option><?php }} while     ($row_chamoline = mysql_fetch_assoc($chamoline)); ?>
</select>

我正在从 MLB 表中与其他成员在 Leaguemembers 表中选择的球队不匹配的球队总列表中进行选择。

4

3 回答 3

2

将“<>”更改为“不在 (...)”中

为什么?"<>" 除了单个值(例如 'team' <> 'xxx'),“not in” 使用集合逻辑来处理许多项目(例如 'team' not in ('aaa','bbb', 'ccc'))

于 2010-11-04T20:57:47.067 回答
2

尝试使用 NOT IN 代替:

$query_chamoline = "SELECT * FROM MLB WHERE `team` NOT IN(SELECT `team` FROM leaguemembers     WHERE `leagueid`=\"$lid\" AND `active`='Y') ORDER BY `team` ASC";
于 2010-11-04T20:58:30.533 回答
0

此更改将停止错误,但不会停止逻辑错误(如果存在)

$query_chamoline = "SELECT * FROM MLB WHERE `team`<>(SELECT TOP 1 `team` FROM leaguemembers     WHERE `leagueid`=\"$lid\" AND `active`='Y') ORDER BY `team` ASC";

看着他的回答,我希望 Ass3mbler 是对的。

于 2010-11-04T20:58:14.397 回答