Don't show current user in <select>


Don't show current user in <select>

我有一个选择字段,它显示数据库中的所有用户。

这是我的代码:

<select name='accountto'> 
<?php 
    mysql_select_db('cl49-xxx', $con)or die( 'Unable to select database');
    $result=mysql_query('SELECT * FROM member WHERE status=2')or die('error');
    echo '<option>'; // first row beginning
    for ($i = 1; $i <= mysql_num_rows($result); $i++)
    {
        $row = mysql_fetch_array($result);
        $businesstype= $row['businesstype'];
        $personID= $row['personID'];
        echo "<option value='$personID'>$businesstype";
        if ($i % 4 == 0) {
            echo '</option>'; // it's time no move to next row
        }
    }
    echo ''; "// last row ending
?>
</select> 

问题是,如何停止显示列表中的当前(已登录)用户?已登录的用户personID存储在名为user 的cookie中

有什么想法吗?

你能试试这个吗?同时,$TotalRows = mysql_num_rows($result);使用这种方式而不是循环,它每次都执行。所以我用while环路去除了for环路

             <?php
                $currentUser =  $_COOKIE["user"];
                mysql_select_db('cl49-xxx', $con)or die( 'Unable to select database');
                $result=mysql_query('SELECT * FROM member WHERE status=2 and personID!="'.$currentUser.'" ')or die('error');
                $TotalRows = mysql_num_rows($result);
                echo '<option>'; // first row beginning
                $i=1;
                while($row = mysql_fetch_array($result)){
                    $businesstype= $row['businesstype'];
                    $personID= $row['personID'];
                       echo "<option value='$personID'>$businesstype";      
                        if ($i % 4 == 0) {              
                                echo '</option>'; // it's time no move to next row
                        }
                        $i++;
                }
     ?>

以便从cookie中检索一些内容,例如登录用户

$loggedInUser = $_COOKIE["user"];
if ($personID != $loggedInUser)
{
    echo "<option value='$personID'>$businesstype"; 
}

因此,如果该值与cookie中的当前登录用户匹配,它就不会添加到选项列表

如果相应的cookie包含要插入的personID,请检查它。如果是,就不要插入:

//rest of your code omitted
if($_COOKIE["user"] != $personID) {
  //insert the option
}


另一种方法是,为了摆脱一个淹没级别,如果人员id等于cookie中存储的id,则继续循环,因此只需添加

if($_COOKIE["user"] == $personID) {
  continue;
}

初始化$personID之后。

尝试使用此查询mysql_query('SELECT * FROM member WHERE status=2 and personId != $_COOKIE["user"]')or die('error');

其中personId对于客户是唯一的,并且在您的cookie中可用。