Php 语句中的循环问题

Php 语句中的循环问题,php,mysql,tags,Php,Mysql,Tags,我希望有人能帮我尖叫 基本上,我试图用下面的陈述做一些事情 首先,我想检查用户id是否存在于member\u categories\u位置。 如果是,我想从第二条语句中排除所有条目,其中member_id等于第一条语句中的所有结果 第三条语句是else语句,如果成员id不在成员类别位置,则显示该语句 问题-第一个系统循环的结果很好,但是当我尝试插入第二个语句(!='$memid')时,没有结果,也没有效果。我认为问题在于$memid是一个循环结果 我如何让第二条语句说,处于member\u ca

我希望有人能帮我尖叫

基本上,我试图用下面的陈述做一些事情

首先,我想检查用户id是否存在于member\u categories\u位置。 如果是,我想从第二条语句中排除所有条目,其中member_id等于第一条语句中的所有结果 第三条语句是else语句,如果成员id不在成员类别位置,则显示该语句

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

我如何让第二条语句说,处于member\u categories\u位置的任何member\u 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)
$sql2=”
选择*
来自成员\类别\位置a
加入会员_用户b
在b.id=a.member_id”上;
$rs2=mysql\u查询($sql2);
而($row=mysql\u fetch\u数组($rs2))
{
$memid=“”.$row['member_id']。”;
}
如果(mysql_num_rows($rs2)!=0)
{
$new=”
选择*
从成员类别
加入会员用户
在成员类别上。成员id=成员用户id
加入成员配置
在成员类别上。成员id=成员配置。成员id
哪里
成员类别。类别=“$category”
和member_categories.member_id!=“$field”
按成员分组\u config.member\u id
按兰德顺序()限制0,42“;
$rs=mysql\u查询($new);
while($row=mysql\u fetch\u assoc($rs))
{
echo“从第一条语句中排除成员ID的结果”;
}
回声“;
}
其他的
{
$new=”
选择*
从成员类别
加入会员用户
在成员类别上。成员id=成员用户id
加入成员配置
在成员类别上。成员id=成员配置。成员id
哪里
成员类别。类别=“$category”
按成员分组\u config.member\u id
按兰德顺序()限制0,42“;
$rs=mysql\u查询($new);
while($row=mysql\u fetch\u assoc($rs))
{
回显“所有成员ID的结果”;
}
回声“;

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

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

这样,当您在下面使用它时,它将被定义

请编辑以上代码以使用适当的缩进-这将使我们更容易为您提供帮助。$field和$category的值从何处获得?$field应该是$memid,$category是一个$\u请求,它位于此代码之上。将您的业务/数据库逻辑与您的演示分离也是一个明智的主意逻辑。谢谢jball,虽然barfoon很抱歉,但没有真正了解你$memid是从第一条语句定义的,它是检查成员id是否存在于成员位置的结果,然后确定应该显示的结果