2010-11-04 3 views
0

Je suis en train de mettre en place un script de la ligue. Quand quelqu'un s'inscrit pour une ligue, il choisit une liste d'équipes disponibles dans un champ déroulant.sql vivent éléments d'une autre table

Le problème que j'ai est que je reçois ce message d'erreur quand il y a plus d'un champs.

« sous-requête renvoie plus de 1 ligne »

est ici le script:

//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> 

Je sélection de la liste complète des équipes de la table MLB qui ne correspondent pas aux équipes cueillies par d'autres membres dans la table leaguemembers.

Répondre

0

Ce changement arrêtera l'erreur, mais pas l'erreur logique (si elle existe)

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

regardant sa réponse que j'attends Ass3mbler est juste.

2

changement "<>" avec "pas (...)"

pourquoi? "<" "Exclut une seule valeur (ex: 'équipe' <> 'xxx')," not in "utilise une logique de jeu pour gérer de nombreux éléments (ex 'team' pas dans ('aaa', 'bbb', « ccc »))

2

Essayez d'utiliser NOT IN à la place:

$query_chamoline = "SELECT * FROM MLB WHERE `team` NOT IN(SELECT `team` FROM leaguemembers  WHERE `leagueid`=\"$lid\" AND `active`='Y') ORDER BY `team` ASC"; 
+0

+1 - Je viens de terminer de taper la même réponse))) –

Questions connexes