【发布时间】:2014-07-17 04:33:10
【问题描述】:
此代码是从 SQL 数据库中选择在线用户及其用户模式,在 php 输出中的用户名之前添加他们的状态前缀(~、&、@、%、+)。
<< SQL Connection Data Goes here >>
//Half Mod/Half Op
$hmodsinlistsql = mysql_query("SELECT user.nick FROM `ison` INNER JOIN `user` on
`ison`.`nickid` = `user`.`nickid` INNER JOIN `chan` ON `ison`.`chanid` =
`chan`.`chanid` WHERE chan.channel = '#Channel' AND user.nick NOT LIKE
'%bot%' AND user.nick NOT LIKE '%Serv%' and user.realname NOT LIKE
'%bot%' AND user.realname NOT LIKE '%Serv' AND user.nick NOT LIKE
'%STAT%' AND user.realname NOT LIKE '%EVA%APB%' AND ison.mode_lh = 'Y' AND ison.mode_lo = 'N'
AND user.away = 'N'");
//Voiced/Temp Mod
$tempmodsinlistsql = mysql_query("SELECT user.nick FROM `ison` INNER JOIN `user` on
`ison`.`nickid` = `user`.`nickid` INNER JOIN `chan` ON `ison`.`chanid` =
`chan`.`chanid` WHERE chan.channel = '#Channel' AND user.nick NOT LIKE
'%bot%' AND user.nick NOT LIKE '%Serv%' and user.realname NOT LIKE
'%bot%' AND user.realname NOT LIKE '%Serv' AND user.nick NOT LIKE
'%STAT%' AND user.realname NOT LIKE '%EVA%APB%' AND ison.mode_lv = 'Y'
AND user.away = 'N'");
while ($row = mysql_fetch_assoc($hmodsinlistsql)) {
$rows[] = $row;
}
foreach($rows as $row) {
echo '<tr><td>%' . $row[nick] .', </td></tr>';
}
上面的代码给了我这个:
%hmod2, %hmod3, %hmod4, %hmod1, %hmod5,
期望的输出:
%hmod2, %hmod3, %hmod4, %hmod1, %hmod5, +tmod1, +tmod2, +tmod3
我的问题是我可以很好地获得 hmod 结果,但是我不确定如何在单独的查询中使用多个 foreach 循环,然后按照上面的要求将结果合并到单个输出字符串中。
如果有人能帮忙解决这个问题,那就太好了。
【问题讨论】:
-
您永远不会合并两个搜索结果,并且您只有一个与名称相呼应的循环。