我有一个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
有什么想法吗?
答案 0 :(得分:0)
检查相应的Cookie是否包含您要插入的personID
。如果是这样,就不要插入它:
//rest of your code omitted
if($_COOKIE["user"] != $personID) {
//insert the option
}
<小时/> 另一种方法是,为了摆脱一个压缩水平,如果人员id等于存储在cookie中的id,则继续循环,所以你只需添加
if($_COOKIE["user"] == $personID) {
continue;
}
初始化$personID
后。
答案 1 :(得分:0)
以便从cookie中检索某些内容,例如登录用户
$loggedInUser = $_COOKIE["user"];
if ($personID != $loggedInUser)
{
echo "<option value='$personID'>$businesstype";
}
因此,如果该值与cookie中当前登录的用户匹配,则它不会添加到选项列表
中答案 2 :(得分:0)
你可以尝试这个吗,同时,$TotalRows = mysql_num_rows($result);
使用这种方式而不是循环,它每次都会被执行。所以我删除了使用for
循环
while
循环
<?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++;
}
?>
答案 3 :(得分:0)
尝试使用此查询
mysql_query('SELECT * FROM member WHERE status=2 and personId != $_COOKIE["user"]')or die('error');
其中personId对于客户而言是唯一的,并且可以在您的cookie中使用。