/[LeafOK_CVS]/fenglin/bbs/search_user.php
ViewVC logotype

Annotation of /fenglin/bbs/search_user.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.16 - (hide annotations)
Fri Apr 4 05:27:31 2025 UTC (11 months, 1 week ago) by sysadm
Branch: MAIN
Changes since 1.15: +3 -3 lines
Fix performance issue

1 sysadm 1.1 <?
2 sysadm 1.12 require_once "../lib/db_open.inc.php";
3 sysadm 1.1 require_once "./session_init.inc.php";
4 sysadm 1.4 require_once "./user_level.inc.php";
5 sysadm 1.1 ?>
6 sysadm 1.9 <?
7 sysadm 1.13 $page = (isset($_GET["page"]) ? intval($_GET["page"]) : 1);
8     $rpp = (isset($_GET["rpp"]) ? intval($_GET["rpp"]) : 20);
9 sysadm 1.1
10 sysadm 1.13 $type = (isset($_GET["type"]) ? intval($_GET["type"]) : 0);
11     $online = (isset($_GET["online"]) && $_GET["online"] == "1" ? 1 : 0);
12     $friend = (isset($_GET["friend"]) && $_GET["friend"] == "1" ? 1 : 0);
13     $search_text = (isset($_GET["search_text"]) ? $_GET["search_text"] : "");
14    
15     $sql = "SELECT IF(UID = 0, 1, 0) AS is_guest, COUNT(*) AS u_count FROM user_online
16 sysadm 1.16 WHERE last_tm >= SUBDATE(NOW(), INTERVAL '$BBS_user_off_line' SECOND)
17 sysadm 1.13 GROUP BY is_guest";
18 sysadm 1.1
19 sysadm 1.13 $rs = mysqli_query($db_conn, $sql);
20     if ($rs == false)
21     {
22     echo("Count online user error" . mysqli_error($db_conn));
23     exit();
24     }
25 sysadm 1.1
26 sysadm 1.13 $guest_online = 0;
27     $user_online = 0;
28 sysadm 1.4
29 sysadm 1.13 while ($row = mysqli_fetch_array($rs))
30     {
31     if ($row["is_guest"])
32     {
33     $guest_online = $row["u_count"];
34     }
35     else
36     {
37     $user_online = $row["u_count"];
38     }
39     }
40     mysqli_free_result($rs);
41 sysadm 1.4
42 sysadm 1.13 $sql = "SELECT COUNT(user_list.UID) AS rec_count FROM user_list" .
43     ($online ? " INNER JOIN user_online ON user_list.UID = user_online.UID" : "") .
44     ($friend ? " INNER JOIN friend_list ON user_list.UID = friend_list.fUID" : "") .
45     ($type == 1 ? " INNER JOIN user_pubinfo ON user_list.UID = user_pubinfo.UID" : "") .
46     " WHERE user_list.enable AND ".
47     ($type == 1 ? "nickname" : "username") .
48     " LIKE '%" . mysqli_real_escape_string($db_conn, $search_text) . "%'" .
49 sysadm 1.16 ($online ? " AND last_tm >= SUBDATE(NOW(), INTERVAL '$BBS_user_off_line' SECOND)" : "").
50 sysadm 1.13 ($friend ? " AND friend_list.UID = " . $_SESSION["BBS_uid"] : "");
51 sysadm 1.1
52 sysadm 1.13 $rs = mysqli_query($db_conn, $sql);
53     if ($rs == false)
54     {
55     echo("Query user error" . mysqli_error($db_conn));
56     exit();
57     }
58 sysadm 1.1
59 sysadm 1.13 if ($row = mysqli_fetch_array($rs))
60     {
61     $toa = $row["rec_count"];
62     }
63 sysadm 1.1
64 sysadm 1.13 mysqli_free_result($rs);
65 sysadm 1.1
66 sysadm 1.13 $page_total = ceil($toa / $rpp);
67     if ($page > $page_total)
68     {
69     $page = $page_total;
70     }
71 sysadm 1.1
72 sysadm 1.13 if ($page <= 0)
73     {
74     $page = 1;
75     }
76 sysadm 1.1 ?>
77     <html>
78     <head>
79 sysadm 1.7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
80     <title>用户查找结果</title>
81 sysadm 1.1 <link rel="stylesheet" href="css/default.css" type="text/css">
82 sysadm 1.4 <style type="text/css">
83     TD.head,TD.level,TD.login_dt,TD.dark,TD.username
84     {
85     border-right: #d0d3F0 1px solid;
86     border-left: #d0d3F0 1px solid;
87     border-bottom: #d0d3F0 1px solid;
88     }
89     TD.head
90     {
91 sysadm 1.7 font-family: 楷体;
92 sysadm 1.13 color: #909090;
93 sysadm 1.4 }
94     TD.login_dt,TD.level,TD.dark,TD.username
95     {
96 sysadm 1.13 text-align: center;
97 sysadm 1.4 }
98     TD.login_dt,TD.dark
99     {
100 sysadm 1.13 color: #909090;
101     background-color: #eaf0Fa;
102 sysadm 1.4 }
103     TD.head,TD.level
104     {
105 sysadm 1.13 background-color: #fafbfc;
106 sysadm 1.4 }
107     TD.level
108     {
109 sysadm 1.13 color: orange;
110     }
111     TD.username
112     {
113     background-color: #fafbfc;
114     }
115     TD.username:hover
116     {
117     background-color: #eaf0Fa;
118 sysadm 1.4 }
119     </style>
120    
121 sysadm 1.13 <script language="JavaScript" src="/js/nw_open.js"></script>
122     <script language="JavaScript">
123     function ch_page(page)
124     {
125     document.change_page.page.value = page;
126     document.change_page.submit();
127     return false;
128     }
129    
130     function ch_rpp()
131     {
132     document.change_page.page.value = Math.floor(document.change_page.page.value * <? echo $rpp; ?> / document.change_page.rpp.value);
133     document.change_page.submit();
134     return false;
135     }
136     </script>
137 sysadm 1.1 </head>
138     <body>
139     <center>
140 sysadm 1.4 <table cols="2" border="0" cellpadding="0" cellspacing="0" width="770">
141     <tr>
142     <td colspan="2" style="color:green;">
143 sysadm 1.8 <a class="s2" href="main.php"><? echo $BBS_name; ?></a>&gt;&gt;查找<? echo ($online?"在线":""); ?><? echo ($friend?"好友":"用户"); ?>
144 sysadm 1.4 </td>
145     </tr>
146     <tr bgcolor="#d0d3F0" height="2">
147     <td colspan="2"></td></tr>
148     <tr>
149     <td class="dark" width="3%"></td>
150     <td class="head" width="97%">
151 sysadm 1.13 <?
152     if ($toa==0)
153 sysadm 1.1 {
154 sysadm 1.13 ?>未找到指定用户<?
155     }
156     else
157 sysadm 1.1 {
158 sysadm 1.13 ?>用户查找结果(共<? echo $toa; ?>位)
159     <?
160     }
161     ?>(当前在线注册用户<? echo $user_online; ?>位,游客<? echo $guest_online; ?>位)
162 sysadm 1.1 </td>
163     </tr>
164     </table>
165 sysadm 1.4 <table border="0" cellpadding="1" cellspacing="0" width="770">
166     <tr height="10">
167     <td>
168 sysadm 1.1 </td>
169 sysadm 1.4 </tr>
170     </table>
171     <table bgcolor="#f0F3Fa" border="0" cellpadding="0" cellspacing="0" width="770">
172     <tr bgcolor="#d0d3F0" height="20">
173     <td class="title" width="4%"></td>
174 sysadm 1.7 <td class="title" width="15%">用户ID</td>
175     <td class="title" width="20%">昵称</td>
176     <td class="title" width="12%">等级</td>
177     <td class="title" width="18%">最后登陆时间</td>
178 sysadm 1.4 <td class="title" width="27%"></td>
179     <td class="title" width="4%"></td>
180 sysadm 1.1 </tr>
181 sysadm 1.13 <?
182     $sql = "SELECT user_list.UID, username, nickname, exp, gender, gender_pub, last_login_dt FROM user_list" .
183     ($online ? " INNER JOIN user_online ON user_list.UID = user_online.UID" : "") .
184     ($friend ? " INNER JOIN friend_list ON user_list.UID = friend_list.fUID" : "") .
185     " INNER JOIN user_pubinfo ON user_list.UID = user_pubinfo.UID WHERE user_list.enable AND ".
186     ($type == 1 ? "nickname" : "username") .
187     " LIKE '%" . mysqli_real_escape_string($db_conn, $search_text) . "%'" .
188 sysadm 1.16 ($online ? " AND last_tm >= SUBDATE(NOW(), INTERVAL '$BBS_user_off_line' SECOND)" : "").
189 sysadm 1.13 ($friend ? " AND friend_list.UID = " . $_SESSION["BBS_uid"] : "") .
190     " ORDER BY " . ($type == 1 ? "nickname" : "username") .
191     " LIMIT " . ($page-1) * $rpp . ", $rpp";
192    
193     $rs = mysqli_query($db_conn, $sql);
194     if ($rs == false)
195     {
196     echo("Query user error" . mysqli_error($db_conn));
197     exit();
198     }
199 sysadm 1.1
200 sysadm 1.13 while ($row = mysqli_fetch_array($rs))
201 sysadm 1.1 {
202     ?>
203 sysadm 1.4 <tr height="25">
204     <td class="dark">
205     <?
206     if ($row["gender_pub"])
207     {
208     if ($row["gender"] == 'M')
209 sysadm 1.13 {
210 sysadm 1.7 echo ("<font color=blue>♂</font>");
211 sysadm 1.13 }
212 sysadm 1.4 else
213 sysadm 1.13 {
214 sysadm 1.7 echo ("<font color=red>♀</font>");
215 sysadm 1.13 }
216 sysadm 1.4 }
217     else
218 sysadm 1.1 {
219 sysadm 1.4 echo ("<font color=green>?</font>");
220     }
221 sysadm 1.1 ?>
222     </td>
223 sysadm 1.13 <td class="username">
224 sysadm 1.14 <a class="s2" href="" onclick="return show_profile(<? echo $row["UID"]; ?>);"><? echo $row["username"]; ?></a>
225 sysadm 1.4 </td>
226     <td class="dark">
227     <? echo $row["nickname"]; ?>
228     </td>
229     <td class="level">
230     <? echo user_level($row["exp"]); ?>
231     </td>
232     <td class="login_dt">
233     <? echo $row["last_login_dt"]; ?>
234     </td>
235     <td class="level">
236 sysadm 1.14 <?
237     if ($_SESSION["BBS_priv"]->checkpriv(0, S_MSG))
238     {
239     ?>
240     <a class="s2" href="" onclick="return NW_open('send_msg.php?user_id=<? echo $row["UID"]; ?>', 'send_msg', 500, 300);">发送消息</a>
241     <?
242     }
243     ?>
244 sysadm 1.1 </td>
245     <td align="center">
246     </td>
247     </tr>
248     <?
249 sysadm 1.4 }
250 sysadm 1.13
251     mysqli_free_result($rs);
252 sysadm 1.1 ?>
253     </table>
254     <table cols="3" border="0" cellpadding="5" cellspacing="0" width="770">
255     <tr bgcolor="#d0d3F0" height="10">
256     <td colspan="3" >
257     </td>
258     </tr>
259     <tr height="10">
260     <td colspan="3" >
261     </td>
262     </tr>
263     <tr>
264 sysadm 1.13 <form action="search_user.php" method="get" id="change_page" name="change_page">
265     <td width="30%" style="color:#909090">
266     每页<select size="1" id="rpp" name="rpp" onchange="ch_rpp();">
267     <?
268 sysadm 1.15 foreach ($BBS_rpp_options as $v)
269 sysadm 1.13 {
270     echo ("<option value=\"$v\"" . ($v == $rpp ? " selected" : "") . ">$v</option>");
271     }
272     ?>
273     </select>人
274     <?
275     if ($page > 1)
276     {
277     ?>
278     <a class="s8" title="首页" href="" onclick="return ch_page(1);"><font face=webdings>9</font></a>
279     <a class="s8" title="上一页" href="" onclick="return ch_page(<? echo ($page - 1); ?>);"><font face=webdings>7</font></a>
280     <?
281     }
282     else
283     {
284     ?>
285     <font face=webdings>9 7</font>
286     <?
287     }
288     ?>
289     第<input id="page" name="page" value="<? echo ($page) ; ?>" style="width: 30px;">/<? echo $page_total; ?>页
290     <?
291     if ($page < $page_total)
292     {
293     ?>
294     <a class="s8" title="下一页" href="" onclick="return ch_page(<? echo ($page + 1); ?>);"><font face=webdings>8</font></a>
295     <a class="s8" title="尾页" href="" onclick="return ch_page(<? echo ($page_total); ?>);"><font face=webdings>:</font></a>
296     <?
297     }
298     else
299     {
300     ?>
301     <font face=webdings>8 :</font>
302     <?
303     }
304     ?>
305 sysadm 1.1 </td>
306 sysadm 1.13 <td width="50%">
307     <select name="type">
308     <option value="0" <? if ($type==0) echo "selected"; ?> >按用户名</option>
309     <option value="1" <? if ($type==1) echo "selected"; ?> >按昵称</option>
310     </select>
311     <input type="text" id="search_text" name="search_text" size="15" value="<? echo $search_text;?>">
312     <input type="checkbox" id="online" name="online" value="1" <? echo ($online ? "checked" : "");?>><font color=#909090>在线</font>
313     <input type="checkbox" id="friend" name="friend" value="1" <? echo ($friend ? "checked" : "");?>><font color=#909090>好友</font>
314     <input type=image src="images/search.gif" alt="查找用户" border="0" name="image"></a>
315 sysadm 1.1 </td>
316 sysadm 1.13 <td width="10%">
317     </td>
318     </form>
319 sysadm 1.1 </tr>
320     </table>
321     </center>
322     <?
323 sysadm 1.13 mysqli_close($db_conn);
324    
325     include "./foot.inc.php";
326 sysadm 1.1 ?>
327     </body>
328     </html>

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1