我有一个选择字段,它显示数据库中的所有用户。
这是我的代码:
<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中可用。