2010-12-02 50 views
0

我希望有人能帮助大家尖叫!声明中的循环问题

基本上我试图用下面的语句做一些事情;

首先,我想检查用户标识是否存在于member_categories_position中。 如果是我想然后排除第二个语句中的所有条目,其中member_id等于第一条语句的所有结果 第三个语句是else语句,如果member_id不存在于member_categories位置中,则显示else语句。

问题 - 第一个系统的结果很好,但是当我尝试插入第二个语句(!='$ memid')时,没有产生任何结果,也没有任何效果。我认为问题是$ memid是一个循环结果。

如何获得第二个声明,说member_categories_position中的任何member_id都不会在该声明中显示?

$sql2 = " 
    SELECT * 
    FROM member_categories_position a 
    JOIN member_users b 
     ON b.id = a.member_id"; 

$rs2 = mysql_query($sql2); 
while ($row = mysql_fetch_array($rs2)) 
{ 
    $memid = "".$row['member_id'].""; 
} 

if(mysql_num_rows($rs2) != 0) 
{ 
    $new= " 
     SELECT * 
     FROM member_categories 
     JOIN member_users 
      ON member_categories.member_id=member_users.id 
     JOIN member_config 
      ON member_categories.member_id=member_config.member_id 
     WHERE 
      member_categories.categories='$category' 
      AND member_categories.member_id !='$field' 
     GROUP BY member_config.member_id 
     ORDER BY RAND() limit 0,42"; 

    $rs = mysql_query($new); 

    while ($row = mysql_fetch_assoc($rs)) 
    { 
     echo "result excluding member ids from the first statement"; 
    } 
    echo "<div class=\"clear\"></div>"; 
} 
else 
{ 

    $new= " 
     SELECT * 
     FROM member_categories 
     JOIN member_users 
      ON member_categories.member_id=member_users.id 
     JOIN member_config 
      ON member_categories.member_id=member_config.member_id 
     WHERE 
      member_categories.categories='$category' 
     GROUP BY member_config.member_id 
     ORDER BY RAND() limit 0,42"; 

    $rs = mysql_query($new); 

    while ($row = mysql_fetch_assoc($rs)) 
    { 
     echo "Result with all member ids"; 
    } 
    echo "<div class=\"clear\"></div>"; 

} } <-- (second is a stray from original post) 
+0

请编辑您上面的代码使用正确的缩进 - 它会让你更容易让我们来帮助你。 – jball 2010-12-02 16:52:55

+0

$ field和$ category从哪里得到它们的值? – 2010-12-02 17:07:20

回答

0

$ memid不在范围内,因为它似乎是在循环内定义的。尝试定义$ memid ='';在脚本的顶部..就像这样。

$memid = ''; 
$sql2 = " 
     SELECT * 

当你使用它下面将定义的方式..