カスタムメイドのフォーラムでさまざまなユーザーのさまざまなデータを表示したいのですが、最善の方法がわかりません。
ここに私が取り組んでいる構造があります:
CREATE TABLE IF NOT EXISTS `forums_forums` (
`forum_id` int(11) NOT NULL auto_increment,
`forum_name` varchar(100) NOT NULL,
`order_number` int(11) NOT NULL default '0',
`posts` int(11) NOT NULL default '0',
`replies` int(11) NOT NULL default '0',
`forum_description` text NOT NULL,
`allow_topics` int(11) NOT NULL default '0',
`admin_only` int(11) NOT NULL default '0',
`team` int(11) NOT NULL,
PRIMARY KEY (`forum_id`),
KEY `forum_name` (`forum_name`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=102 ;
デフォルトでは、各ユーザーは、管理者およびチーム固有のものを除くすべてのフォーラムを表示する必要があります。一部のユーザーはチームの一員になりますが、他のユーザーはチームの一員ではないため、チームの一員であるユーザーは、管理者のフォーラムではなく、チーム固有のフォーラムを含むすべてのフォーラムを表示する必要があります。
ユーザーがチームの一員である場合、users テーブルには、フォーラム チームと一致する等しいチーム ID があります。
これが私が今持っているものですが、それを変更する最善の方法を見つけることができません:
if ($GLOBALS["USER"]["team"] == 1) {
$a = mysql_query("SELECT * FROM forums_forums ORDER BY order_number");
} else {
$a = mysql_query("SELECT * FROM forums_forums WHERE admin_only=0 ORDER BY order_number");
}
WHILE ($b = mysql_fetch_array($a)) {
?>
<?if ($b["admin_only"] == 1) {?>
<tr bgcolor="#111111" height="100">
<?} else {?>
<tr bgcolor="#000000" height="100">
<?}?>
<td valign="top">
<blockquote style="margin:10px;">
<a href="/forums-view.php?forum_id=<?=$b["forum_id"]?>"><font color="#FFFFCC"><b><?=$b["forum_name"]?></b></font></a>
</blockquote>
</td>
<td align="center"> <b><?=number_format($b["posts"])?></b> </td>
<td align="center"> <b><?=number_format($b["replies"])?></b> </td>
<td valign="top">
<blockquote style="margin:10px;">
<?=$b["forum_description"]?>
</blockquote>
</td>
</tr>
<?}?>
</table>